2012-05-23 15 views
0

我有以下脚本:如果我将回调添加到“绑定”,它会在它的绑定或每次被调用时触发吗?

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

的“绑定回调”警报似乎是触发每次正在单击了“#target”元素,而不是只有当元素被绑定一次。我可以进行回调来验证绑定是否发生过一次?

+1

把这个不加标记这是脚本,是的,这将确实绑定一切。 B-)魔法innit –

回答

2

这就是它应该如何工作:每触发一次触发事件。根据bind调用发生绑定一次;如果您不小心使用相同的处理程序多次呼叫bind,您将看到处理程序多次触发一次click

但是:bind呼叫中的两个功能是做什么的?没有超载接受两个功能。

你可能会寻找其他的选择是:

  • 调用函数只在定点一次 - 只要直接调用它,你并不需要的jQuery了点。
  • 绑定处理程序只会触发第一个事件发生的时间 - 为此使用one
  • 绑定处理程序正常现场调用它一次;你可以用$(...).bind('click', ...).trigger('click')来做到这一点。
+0

我可以做一个回调或一个函数只发生绑定时发生? –

+0

@WilliamCalleja:你不需要绑定,直接调用它。 – Jon

+0

我只需要确保处理程序一次绑定到元素,因为我有理由相信它会发生多次。 –

相关问题