亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 onclick 事件附加到 vuejs "v-for=" 生成的每個項目以顯示或隱藏其內部元

如何將 onclick 事件附加到 vuejs "v-for=" 生成的每個項目以顯示或隱藏其內部元

慕容708150 2023-09-25 16:16:42
我的vue數據是data: function() {     return {      results: {         "items": [           {            "id": "770c257b-7ded-437c-99b5-3b8953b5be3a",            "name": "Gsbssbb",            "price": 9559,            "colour": {                "name": "Blue",                "hex": "FF0000AE"            },            "amountAvailable": 949        },        {            "id": "8ecc6558-0c16-4497-b742-5eb5cb28c572",            "name": "Vsbdbdb",            "price": 6559,            "colour": {                "name": "Purple",                "hex": "FF800080"            },            "amountAvailable": 6595        }    ],}模板是<div class="column asoebi-list-item" v-for="result in results.items">                  <div id="item-event" class="columns is-mobile">                      <div class="column auto has-text-left">                          <p class="item-name">{{result.name}}</p>                          <p class="item-price" id="item-price">  {{result.price}}</p>                          <p class="item-units">{{result.amountAvailable}} Units Remaining &#183; {{result.colour.name}}</p>                      </div>                       <div class="column is-2">                                <button id="number-spinner-up" class="o-button button-bottom"  type="button" onclick="this.parentNode.querySelector('[type=number]').stepUp();">                                    +                                </button>                                    <input id="count-input" type="number" name="number" min="0" max="900" v-model="count">                        <button  id="number-spinner-down" class="o-button button-top" type="button" onclick="this.parentNode.querySelector('[type=number]').stepDown();">                                    -                        </button>             </div>          </div>      </div>當我循環遍歷每個數據并顯示它們時,如何添加事件來隱藏和取消隱藏帶有數字 id“number-spinner”類的 div 以及顯示的每個元素上的按鈕。我已經寫好了,但即使我單擊其他項目,它也只會影響第一個項目。我剛剛開始使用vue..請原諒我的馬虎
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

讓 jQuery 遠離 Vue 總是更好,因為它有自己的功能來處理大多數需求。


我不清楚應該設置哪個 div 來切換視圖。所以我添加了一個鏈接來切換它。希望這會有所幫助。


        <div class="column asoebi-list-item" v-for="result in results.items">

            <div id="item-event" class="columns is-mobile">

                <div class="column auto has-text-left">

                    <p class="item-name">{{result.name}}</p>

                    <p class="item-price" id="item-price"> {{result.price}}</p>

                    <p class="item-units">{{result.amountAvailable}} Units Remaining &#183; {{result.colour.name}}</p>

                </div>

                <div class="column is-2" v-show="result.active">

                    <button id="number-spinner-up" class="o-button button-bottom" type="button"

                            onclick="this.parentNode.querySelector('[type=number]').stepUp();">

                        +

                    </button>

                    <input id="count-input" type="number" name="number" min="0" max="900" v-model="result.count">

                    <button id="number-spinner-down" class="o-button button-top" type="button"

                            onclick="this.parentNode.querySelector('[type=number]').stepDown();">

                        -

                    </button>

                </div>

                <a href="javascript:void(0)" @click="result.active=!result.active">toggle</a>

            </div>

        </div>

此外,對數組進行了一些更改results以處理v-model和切換功能


    data: () => {

        return {

            results: {

                "items": [

                    {

                        "id": "770c257b-7ded-437c-99b5-3b8953b5be3a",

                        "name": "Gsbssbb",

                        "price": 9559,

                        "colour": {

                            "name": "Blue",

                            "hex": "FF0000AE"

                        },

                        "amountAvailable": 949,

                        "count": null,

                        "active": true

                    },

                    {

                        "id": "8ecc6558-0c16-4497-b742-5eb5cb28c572",

                        "name": "Vsbdbdb",

                        "price": 6559,

                        "colour": {

                            "name": "Purple",

                            "hex": "FF800080"

                        },

                        "amountAvailable": 6595,

                        "count": null,

                        "active": true

                    }

                ],

            }

        }

    },


查看完整回答
反對 回復 2023-09-25
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

你正在使用Vue!不要專注于操作 DOM!你沒有使用 jQuery!在編碼之前閱讀 Vue 文檔!



查看完整回答
反對 回復 2023-09-25
  • 2 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號