测试在vue下点击事件传参和不传参的区别

    <div id = 'app'>
        <p><button @click = 'test_click1'>{{btn_text1}}</button></p>
        <br>
        <p><button @click = 'test_click2("123")'>{{btn_text2}}</button></p>
    </div>

    <script src="https://cdn.bootcss.com/vue/2.5.8/vue.min.js"></script>
    <script type="text/javascript">

        var _vm = new Vue({
            data : {
                btn_text1 : '点击1' ,
                btn_text2 : '点击2'
            },
            methods : {
                test_click1 : function (e) {
                    console.log('test_click1--------------------------') ;
                    console.log(e) ;            
                    // 输出结果:MouseEvent {isTrusted: true, screenX: 40, screenY: 121, clientX: 40, clientY: 30, …}

                    console.log(e.target) ;     // 输出结果:<button>点击1</button>
                    console.log('test_click1--------------------------') ;
                },
                test_click2 : function (e) {
                    console.log('test_click2--------------------------') ;
                    console.log(e) ;            // 输出结果:123
                    console.log(e.target) ;     // 输出结果:undefined
                    console.log('test_click2--------------------------') ;
                }
            }
        }).$mount('#app');
    </script>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue,我们可以使用v-for指令来循环渲染一个元素,并且可以结合@click事件给循环的元素绑定点击事件。在循环点击事件传递参数,有几种方式可以实现。 第一种方式是使用匿名函。我们可以在@click事件后面使用匿名函来传递参数。例如: ```html <template> <div> <ul> <li v-for="(item, index) in items" :key="index" @click="handleClick(item)"> {{ item.name }} </li> </ul> </div> </template> <script> export default { data() { return { items: [ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ] } }, methods: { handleClick(item) { console.log(item) } } } </script> ``` 在这个例子,我们通过@click事件后面的匿名函来传递item参数,点击时会将对应的item对象输出到控制台。 第二种方式是使用bind方法。我们可以使用Function.prototype.bind方法来创建一个绑定参数的新函。例如: ```html <template> <div> <ul> <li v-for="(item, index) in items" :key="index" @click="handleClick.bind(this, item)"> {{ item.name }} </li> </ul> </div> </template> <script> export default { data() { return { items: [ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ] } }, methods: { handleClick(item) { console.log(item) } } } </script> ``` 在这个例子,我们使用了handleClick.bind(this, item)来创建一个新的函,并且将this和item作为参数传递进去。 无论是使用匿名函还是bind方法,我们都可以在点击事件传递参数,并在方法获取到参数的值。这样就可以实现在Vue循环点击事件传递参数的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值