按照官方给出的案例,点击事件触发源是在事件函数里边通过$event传递,实际操作中如下边,打印出来的对象很有可能是li span i 或者是p,我只想在获取到当前点击的li,如何获取?别说用jquery通过$index绑定到父级获取到当前那个li,实际数据中有可能层级很深你根本不知道有多少层,用vue的写法如何获取到当前点击那个li?
更有可能会点到我
js代码:
new Vue({ el:'#app', methods:{ clickFn:function(event){ console.info(event.target) } } })
寫了個簡單的例子:
jsFiddle
因為每個可點擊的 li
都利用 .stop
阻止往上冒泡,所以變成只會觸發當下的 li
點擊事件
使用楼上的方式
<p id="app"> <ul> <li v-for="(item, index) in items" @click="clickFn($event, index)"> <span :style="{color: item.color}">{{ item.text }}</span> <strong>world</strong> <em>123</em> </li> </ul> </p> <script> new Vue({ el: "#app", data: { items: [ {text: 'red', color: 'red'}, {text: 'green', color: 'green'}, {text: 'blue', color: 'blue'}, ] }, methods: { clickFn: function(event, index) { alert($('#app ul li').eq(index).text()); } } }); </script>
v-for="(item,index) in imtes" @click="clickFn(index)"
v-for第二个参数是索引。
语法写成这样:@click.self=“callback()”
,试试吧。