可能重複:
Performance difference between jQuery's .live('click', fn) and .click(fn)live()/ delegate()是否會顯着影響性能?
是否jQuery的生活()/委託()影響顯著的表現?
$('a').live('click', ...
$('a').click(...
< ==這是更快?多少錢?
可能重複:
Performance difference between jQuery's .live('click', fn) and .click(fn)live()/ delegate()是否會顯着影響性能?
是否jQuery的生活()/委託()影響顯著的表現?
$('a').live('click', ...
$('a').click(...
< ==這是更快?多少錢?
答案是,這取決於:
click
將是幾個要素更快。每個元素都有一個綁定函數,但沒有其他點擊的開銷。delegate
對於許多元素來說更快。只有一個事件處理程序被綁定,即使是數百個元素。與爲每個元素綁定一個函數相比,檢查錯過的點擊的開銷是微乎其微的。delegate
總是比live
更快。它可以限制頁面中監聽事件的位置,並且在綁定時不需要遍歷所有元素。如果你在數字之後,我讀了一篇關於委託的文章,指出臨界點大約在3-5個元素之間。請使用click
以上,delegate
以上。不幸的是,我不能支持這個鏈接,但這是我一直遵循的一般規則。
live方法附加到文檔樹根上,當它觸發時,它檢查目標,如果匹配,處理函數被觸發。
點擊方法直接綁定到節點。
對您的問題沒有簡單的答案。有很多情況。如果只需要將click事件綁定到一個元素,則使用click()。例如,如果您有鏈接等項目列表,並且可以對其進行修改,則應使用live()。 更多的信息可以在文檔中找到:live() method