2011-06-23 40 views

回答

3

答案是,這取決於:

  • click將是幾個要素更快。每個元素都有一個綁定函數,但沒有其他點擊的開銷。
  • delegate對於許多元素來說更快。只有一個事件處理程序被綁定,即使是數百個元素。與爲每個元素綁定一個函數相比,檢查錯過的點擊的開銷是微乎其微的。
  • delegate總是比live更快。它可以限制頁面中監聽事件的位置,並且在綁定時不需要遍歷所有元素。

如果你在數字之後,我讀了一篇關於委託的文章,指出臨界點大約在3-5個元素之間。請使用click以上,delegate以上。不幸的是,我不能支持這個鏈接,但這是我一直遵循的一般規則。

1

live方法附加到文檔樹根上,當它觸發時,它檢查目標,如果匹配,處理函數被觸發。
點擊方法直接綁定到節點。
對您的問題沒有簡單的答案。有很多情況。如果只需要將click事件綁定到一個元素,則使用click()。例如,如果您有鏈接等項目列表,並且可以對其進行修改,則應使用live()。 更多的信息可以在文檔中找到:live() method