开发者社区> 问答> 正文

问 vue.js中如何为v-for渲染的多个li绑定事件?

screenshot

<div class="main-number">
            <ul>
                <li class="main-number-options" v-for="item in items" v-on:click="choose">
                    {{item.number}}
                </li>
            </ul>
</div>

js代码

var vm = new Vue({
        el:".main-number",
        data:{
            items:[
            {number:"01"},
            {number:"02"},
            {number:"03"},
            {number:"04"},
            {number:"05"},
            {number:"06"},
            {number:"07"},
            {number:"08"},
            {number:"09"},
            {number:"10"},
            {number:"11"},
            ]
        },
        methods:{
            choose: function () {
             
            }
        }
    })

现在我想给每个li绑定一个事件,让他们在点击的时候变成右边选中态红底白字的样式
请问vue有类似jquery事件代理委托的方法吗?有什么好的办法实现这种效果?

展开
收起
杨冬芳 2016-06-20 15:39:12 8784 0
1 条回答
写回答
取消 提交回答
  • IT从业

    可以尝试这样:
    改变items的结构为

    {number:"01",isSelected:false}
    
    
    li的class绑定一下样式 其中active class为红底白字的样式
    
    class="main-number-options {{item.isSelected?'active':''}}"

    li的点击事件传入循环变量

    v-on:click="choose($index)"

    choose方法只要改变当前的isSelected属性的值即可

      choose: function (index) {
             this.items[index].isSelected=true;
      }
    2019-07-17 19:44:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载