添加一个OnClick处理程序与jQuery只有一次 – 即使再次调用

如果我将一个处理程序分配给元素的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(),而不是直接在元素上应用事件处理程序。

http://api.jquery.com/on/

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...