如果我将一个处理程序分配给元素的OnClick事件两次,那么处理程序将被执行两次。但是我想改变这一点,即使我分配了两次,处理程序只会执行一次。
说明问题的荒谬例子:
$('.button').click( function(){ alert('here'); }); $('.button').click( function(){ alert('here'); });
所以我添加了两次处理程序。现在当我点击一个元素与该类,我会得到两个警报框。
问题是,我如何限制它,所以我只会得到一个警报框?
解决方法
如果.one()实际上是你之后(除了事件处理程序被触发一次之后),那么我认为这是正确的答案。如果没有,您可以在绑定之前取消绑定事件:
var myEventHandler = function () {alert('hello')}; $('a').unbind('click',myEventHandler); $('a').bind('click',myEventHandler);
应该工作
编辑:由于这个回复不断得到投票,我将添加另一个(在大多数情况下更好)的解决方案,至少在OP的情况下会起作用。当处理动态添加的内容时,只需在父元素上使用jQuery的on(),而不是直接在元素上应用事件处理程序。
原文地址:https://www.jb51.cc/jquery/182502.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。