unbind方法在事件中的使用,解决同类或同名元素事件触发多次问题

在编写一个html页面时,有大量的元素使用同一个类,给这些具备同类的元素定义了事件,如下所示:

<script>
            $('.txtClassBox').change(function (e) {

  alert("in");

   }

</script>


当同类的元素内容发生改变的时候,就会触发上述的事件,但是改变内容的该元素出现后面有几个这个同类元素,那么上述的事件就会自动触发N+1次,这个1次就是当前触发change的元素,N是后面的同类元素的个数。调试过程中有点无语,明明只有一个发生改变,为什么会出现这样的事情?


经过一番挣扎,发现上述的方法编写有些问题,问题的关键是同一个元素被多次定义了这个事件引起的,解决这个问题的关键就是unbind

规定从指定元素上删除的一个或多个事件处理程序。如果没有规定参数,unbind() 方法会删除指定元素的所有事件处理程序。

$(selector).unbind(event,function)

因此,将上述的方法改为:

 $('.txtClassBox').unbind().change(function (e) {

alert("in");

}

就可以解决弹出多次,或者说事件触发多次的问题。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值