2011-07-08 22 views
-1

當附加事件(點擊,鼠標懸停,鼠標移出等)時,哪一個性能更好?我將很多事件監聽器附加到我的元素中:hover事件,並且想知道兩者之間是否存在性能差異。.live()或document.ready?

回答

4

你在錯誤地思考它。 live()是一個非常昂貴的觀察員,如果你可以避免它,並使用delegate()來代替。如果你不使用AJAX或JavaScript DOMready後創建DOM節點,那麼你不必擔心觀察者附加到事件:

$(function(){ 
    $('#my_node').click(function(){}); // will work fine for all nodes loaded before domready 
}); 
+1

+1,值得注意的是,你可以與'委託'一樣糟糕。 – Marc

-2
$(document).ready(function() { 
    //Put all your events here, where they'll be live anyway 
}); 
-1

這要看你的需求,但這裏有一個一般規則:

嘗試與.bind()綁定,只要有可能,有.live()綁定爲少,你可以

(注意bind('event', ...)具有別名,如'.click()')

因此,喜歡在document.ready()中綁定比使用.live()更好,因爲活動會消耗更多的資源,因爲總是在「偵聽」更改。

希望這會有所幫助。歡呼聲