jquery循环绑定事件需要注意坑

博客介绍了jQuery给元素绑定事件的写法。无需传参时可用方法一,多数情况需传信息到click事件处理,要用方法二。还指出两种错误写法及结果,同时提醒正确绑定时要注意this作用域,this指向绑定事件的元素。

jquery给元素绑定事件的写法

//方法一
$(a).bind("click", menuClick);
//方法二
$(a).bind("click", {data:menu}, menuClick);

当无需进行参数传递时可以使用方法一,但是在大多数情况下都是需要将一部分信息传入到click事件中进行处理的,此时正确的方式是采用方法二的写法。

错误的写法如下:

//错误写法一
$(a).bind("click", function(){
    menuClick(menu);
}); 

//错误写法二
$(a).bind("click", menuClick(menu)); 

错误写法一的结果为所有元素绑定的事件传入的数据全部相同并且是最后一次循环的数据。

错误写法二的结果为在代码执行此行时事件就是执行。

注意:

在正确的绑定事件的写法中,需要注意this的作用域,this指向为绑定事件的元素。

//此种情况this的指向为绑定该事件的元素,在menuClick中的this就是指向menuClick方法
$(a).bind("click", {menu:menu}, function(event){
    menuClick(this, event.data.menu);
});

 

转载于:https://www.cnblogs.com/smilond/p/10570210.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值