如果我将回调添加到"绑定",它会在其绑定时还是每次调用时触发?



我有以下脚本:

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

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

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

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

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

  • 场只调用一个函数一次——直接调用它,你不需要jQuery。
  • 绑定仅在事件第一次发生时触发的处理程序 -- 为此使用 one
  • 正常绑定处理程序当场调用一次;您可以使用 $(...).bind('click', ...).trigger('click') 执行此操作。

最新更新