2011-12-31 68 views
3

爲什麼jQuery不允許click(),bind()和類似的函數自動工作「live」?爲什麼jQuery不能自動使所有的功能「實時」?

爲什麼我需要使用live("click", functi...如果我想讓它工作"live"而不是click(function()...?活着需要更多資源嗎?

+2

哦,我想,因爲理智認爲瀏覽器需要知道什麼時候需要響應, t「willy-nilly-event-o-rama」。 ['.live()'](http://api.jquery.com/live/)方法對'document'的更改進行操作,因此您更具體(而不是每個「事件」) ,最終的事件處理越「高效」。 – 2011-12-31 02:55:37

+1

'.live()'是事件代表團。這將使得頁面上的每個事件都針對爲該事件提供的每個選擇器進行測試。這會很糟糕,這就是爲什麼'.live()'不好*(和不建議使用)*的原因。 – 2011-12-31 02:56:57

回答

7

有趣的你應該問這個問題。有人寫了一整篇文章回答你的問題:
http://www.ultimatewebtips.com/why-jquery-live-is-a-bad-option-to-use/

表面上現場和委託似乎可以互換。但是,它們不是 。 Live有幾個嚴重的缺點,不應該使用 ,本文將解釋原因。

的概括總結爲:

  1. 你不能使用可重複使用的部件
  2. stopPropagate()在現場
  3. 直播不起作用較慢
  4. 直播ISN」 t可鏈接
+2

答案應該包含被鏈接的文章的要點(可能只是將該頁面的編號大綱撕掉)。肯定值得一提upvote一旦你補充說:) – 2011-12-31 03:01:46

+0

謝謝@ MerlynMorgan-Graham。我學會了如何每天提高我的答案! – 2011-12-31 03:07:06

相關問題