这些天我正在研究一个 jquery 项目,我发现如果我使用像
这样的直接事件$('.selector').click(function(){
});
将完美工作,但如果页面部分回发或动态内容,我必须使用 .on如下
$('body').on('click','.selector',function(){
});
现在我的问题是on既可以处理静态内容,也可以处理动态内容,所以为什么我不总是使用 on直接代替像 click
这样的静态事件。
.on 是否存在任何性能问题
最佳答案
Is there any performance issue with .on
.on
不存在性能问题。事实上,您的第一个示例只是以下内容的快捷方式:
$('.selector').on('click', function(){
正如你所说,不同之处在于使用 $('body').on
为尚未在 DOM 中的元素委托(delegate)事件,这自然需要浏览器进行更多工作。如果您需要对文档或正文进行委派,则使用该方式,否则使用其他方式。
关于jquery - 使用 on 或 by direct event 来应用事件之间是否存在性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17038260/