Jquery 事件委托 导致点击事件多次执行

又是纠缠了好久的问题。

用$(document).on('click','#XX',function(){...})为元素添加点击事件 结果导致事件会执行多次 比如alert会弹出N次,据说是因为每点击一下Document就会绑定一遍事件,所以导致触发多次

该是你程序造成多次绑定了。你在这个事件绑定的前面紧挨着加上。$(document).off('click','#XX')试试
$('#sub').unbind('click').click(function () {
    ...
});

每次绑定前先取消上次的绑定。

我也遇到这样的问题,因为每次让弹窗展示出来都会帮顶一次事件,这样累计下来事件会多次执行。
1.一种方法是弹窗隐藏的时候把弹窗销毁掉;
2.一种是把弹窗里面的事件绑定抽离出来,不要让弹窗每次显示的时候都执行click的绑定。

当然楼主的解决方案也不错。

https://segmentfault.com/q/1010000000458010

jquery中用on来绑定事件,经常的写法有
$(document).on('click','.classname',function(){});
$('.classname').on('click',function(){});

$(document).on是把事件委托到了document上

$('#idname').on是把事件委托到了元素上面(绑定到idName上)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值