我真的很喜欢在jQuery中使用.live()来实现click()focus()blur()和其他交互事件。
我做了很多原型设计,所以如果我想动态添加元素,我发现它给了我很大的灵活性。出于这个原因,我发现自己被一直默认使用它的想法所吸引。这是一个好主意,还是这种糟糕的表现?
使用.live('click',function(){})
会以.click(function(){})
没有的方式减慢速度吗?
答案 0 :(得分:1)
我认为以下回答将适用于它创建的How does jQuery .live() work?
所带来的性能影响答案 1 :(得分:1)
关于性能,在大多数情况下使用live更好。但是live有几个陷阱,这些陷阱在http://api.jquery.com/live/#caveats的文档中有描述。
答案 2 :(得分:1)
我记得.live使用事件冒泡。
根据我的经验,我在大型文档中使用.live看到了明显的性能损失,其中包含鼠标悬停等频繁触发的事件。
jQuery Doc:
但是从jQuery 1.4开始,事件冒泡可以选择在DOM停止 元素“上下文”。
因此,您可以使用它来最小化性能影响。
答案 3 :(得分:1)
如果您不需要将事件冒泡到DOM的顶部,并且您知道事件将发生的上下文,那么delegate()在性能方面是更好的选择。有关this在这方面优于delegate()的原因,请参阅live() stackoverflow帖子。