.live()或document.ready?

时间:2011-07-08 22:50:21

标签: javascript jquery html

在附加事件(点击,鼠标悬停,鼠标移除等等)时,哪一个更适合性能?我在liu中附加了很多事件监听器:悬停事件,我想知道两者之间是否存在性能差异。

3 个答案:

答案 0 :(得分:4)

你正在以错误的方式思考它。 live()是一个非常昂贵的观察者,如果可以的话,请避免使用delegate()。如果你没有使用ajax或javascript在DOMready之后创建DOM节点,那么你不必担心将观察者附加到事件:

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

答案 1 :(得分:-1)

这取决于您的需求,但这是一般规则:

尝试尽可能与.bind()绑定,尽可能少地与.live()绑定

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

所以,更喜欢document.ready()中的绑定而不是使用.live(),因为直播会消耗更多的资源,因为总是“倾听”更改。

希望这会有所帮助。干杯

答案 2 :(得分:-2)

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