如果我向'bind'添加一个回调,它会在绑定时或每次调用时触发吗?

时间:2012-05-23 09:20:59

标签: jquery callback bind

我有以下脚本:

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

每次点击'#target'元素时,'bind callback'警告似乎会触发,而不是在绑定元素时只触发一次。我可以进行回调以验证绑定是否发生一次?

1 个答案:

答案 0 :(得分:2)

它应该如何工作:每次点击事件一次触发。绑定每bind次调用发生一次;如果你不小心用同一个处理程序多次调用bind,你会看到处理程序只被一个click多次触发。

但是:bind电话中的两个功能是什么?没有重载可以接受两个函数。

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

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