2013-09-25 43 views
0

在使用舊版本的jQuery的項目,我有時會看到這樣的事情:在jQuery中使用「on」函數時,您是否必須擔心事件重複?

$(window).unbind("scroll").scroll(infiniteScroll); 

我相信這是爲了防止事件處理程序的重複。

是否需要更新的on函數?換句話說,在使用on之前是否有必要使用off

$(window).off("scroll").on("scroll", infiniteScroll); 

或者是它的安全簡單地使用on即使它可以綁定多次?

$(window).on("scroll", infiniteScroll); 
+0

同樣的問題適用。現在,如果你使用'$(container).on('event','selector',function(){...})版本,你可以選擇一個容器,這樣你只需要綁定一次,消除問題。 –

+0

如果你的代碼邏輯是乾淨的,你不應該解除任何事件,除非是非常特殊的情況 –

+0

當我不得不使用_unbind()_時,我也有這種情況2-3次。 –

回答

2

.on()自身不能解決的問題,但是,它確實提供了命名空間,這也更有力解決問題。

$(window) 
    .off(".mynamespacethatisunique") 
    .on("scroll.mynamespacethatisunique", infiniteScroll); 
+0

很好的答案。謝謝。 –

相關問題