2009-10-21 40 views
3

我的問題:通過ajax加載某些元素後,我綁定了一些點擊功能,但是當用戶將加載幾次相同的元素時,綁定的動作將會重複(不會取代,至少它看起來像)。我試過unbindclick(function(){return false;});,但是完成從元素中刪除clic動作...)。 什麼是這類問題的標準解決方案?如何將一些函數綁定到不存在的元素?

回答

6

對於大多數事件,你可以使用live()(jQuery的1.3+):

$("td").live("click", function() { 
    // do stuff 
}); 

這將click事件綁定到進入存在運行此代碼後,以及<td>元素。

這是一個比嘗試綁定/解除綁定更清潔的解決方案,並確保您沒有將特定元素綁定兩次的相同事件。

+0

Thx,+ 1和'正確答案',但一個小問題依然是:用'not'它假設不工作...'$(「...」)。not(「sada」) .live(「click」,func ...'。 – IProblemFactory 2009-10-21 17:30:42

+0

這會有點問題,你究竟想要做什麼?我可以建議一種方法, – cletus 2009-10-21 17:36:39

1

如果您使用的是jQuery 1.3.2,那麼您可以使用$('').live('click', function() {});來使任何匹配該選擇器的元素都具有該操作。即使使用新的元素,它也能保持活動。

+0

thx +1 :)(lalala 15個字符) – IProblemFactory 2009-10-21 17:28:45

相關問題