javascript - vue点击事件触发源如何正确获取?
阿神
阿神 2017-04-11 10:56:35
[JavaScript讨论组]

按照官方给出的案例,点击事件触发源是在事件函数里边通过$event传递,实际操作中如下边,打印出来的对象很有可能是li span i 或者是p,我只想在获取到当前点击的li,如何获取?别说用jquery通过$index绑定到父级获取到当前那个li,实际数据中有可能层级很深你根本不知道有多少层,用vue的写法如何获取到当前点击那个li?

  • 你可能点到我 也有可能点到我

    更有可能会点到我

js代码:

new Vue({
                el:'#app',
                methods:{
                    clickFn:function(event){
                        console.info(event.target)
                    }
                }
})
阿神
阿神

闭关修行中......

全部回复(4)
伊谢尔伦

语法写成这样:@click.self=“callback()”,试试吧。

高洛峰

v-for="(item,index) in imtes" @click="clickFn(index)"

v-for第二个参数是索引。

阿神

使用楼上的方式

<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>
巴扎黑

寫了個簡單的例子:

jsFiddle

因為每個可點擊的 li 都利用 .stop 阻止往上冒泡,所以變成只會觸發當下的 li 點擊事件

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号