0

我有以下脚本:

$('#target').bind('click', 
                        function () {
                            $('#target').css({ 'display': 'none' });
                            $('#targetFake').css({ 'display': 'inline-block' });
                        },
                        function () {
                            alert('bind callback'); 
                        });

每次单击“#target”元素时似乎都会触发“绑定回调”警报,而不是在绑定元素时仅触发一次。我可以进行回调以验证绑定是否发生了一次?

4

1 回答 1

2

这就是它应该如何工作的:每个点击事件一个触发器。bind每次调用绑定一次;如果您不小心bind使用同一个处理程序多次调用,您将看到该处理程序仅由一个触发多次click

但是:您的bind通话中的两个函数在做什么?没有接受两个函数的重载。

您可能正在寻找的其他替代方案是:

  • 只在现场调用一次函数——直接调用它,你不需要 jQuery。
  • 绑定仅在事件第一次发生时触发的处理程序——one用于此目的。
  • 正常绑定handler 当场调用一次;你可以用$(...).bind('click', ...).trigger('click').
于 2012-05-23T09:22:01.027 回答