.live() or document.ready?

.live() or document.ready?

本文关键字:ready document or live      更新时间:2023-09-26

哪一个是更好的性能时附加事件(点击,鼠标悬停,鼠标离开,等等…)?我将许多事件侦听器附加到我的元素中:hover事件,我想知道两者之间是否存在性能差异。

你想错了。Live()是一个非常昂贵的观察者,尽量避免使用它,而使用delegate()。如果您没有使用ajax或javascript在DOMready之后创建DOM节点,那么您不必担心将观察者附加到事件:

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

这取决于你的需要,但这里有一个一般的规则:

尽量与.bind()绑定,尽可能少与.live()绑定

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

所以,更喜欢在document.ready()中绑定,而不是使用.live(),因为live消耗更多的资源,因为总是"倾听"变化。

希望这对你有帮助。欢呼声

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