2012-05-23 18 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

我只需要確保處理程序一次綁定到元素,因爲我有理由相信它會發生多次。 –

相關問題