jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery事件处理 – 绑定到文档或“body”元素?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我们想要引用整个页面时,我注意到使用$(document)和$(‘body’),特别是在绑定事件时.
$(document).on('click','.myElement',function);

$('body').on('click',function);

性能有什么不同?如果$(document)将事件绑定到整个HTML文档,为什么我们不使用$(‘body’)来绑定类似click的事件?

注意这个问题不是指使用ready函数,而是使用.on()或.delegate()绑定.

解决方法

几乎肯定没有,或更准确地说,没有什么可衡量的.理论上来说,$(‘body’)必须搜索DOM的body元素,但这将是非常快的.另外,由于身体是一个文件的小孩,它将在文件冒泡事件纳秒之前到达.

虽然有一些差异:

如果您在头文件中使用了$(‘body’),并没有延迟执行它(准备就绪等),$(‘body’)将找不到任何东西,并且不会挂接任何处理程序.另一方面,$(文件)会.

如果文档的正文没有填写视口,那么至少有一些浏览器,你会得到一个单击文档,但不是在主体上:

$(document).on("click",function() {
  $("<p>document</p>").appendTo(document.body);
});
$('body').on("click",function() {
  $("<p>body</p>").appendTo(document.body);
});
body {
  border-bottom: 1px solid #060;
}
<p>The line marks the bottom of <code>body</code>. Click above and below the line to see where the click was caught. (Note the line will move as we append to <code>body</code>.)</p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

当然,这不适用于你的$(‘body’).on(‘click’,’.myElement’,function);因为如果点击是身体外,则不会通过.myElement …

对于全局处理程序,我使用$(document),从不$(‘body’)(或$(document.body)),但是这可能更多的是从习惯而不是原因.

大佬总结

以上是大佬教程为你收集整理的jQuery事件处理 – 绑定到文档或“body”元素?全部内容,希望文章能够帮你解决jQuery事件处理 – 绑定到文档或“body”元素?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: