jQuery的两个定义准备就绪

时间:2016-10-22 09:15:07

标签: javascript jquery wordpress document-ready ready

我试图在Wordpress网站上调试一个奇怪的行为:ready第一次出现的代码似乎没有发生。由于安装了几个插件,我在代码中看到了这一点:

<script type="text/javascript">
jQuery(document).ready(function(){   (function() {   ... })();});
</script>

然后,几乎在页面的末尾,我看到了:

<script type="text/javascript">
jQuery(document).on('ready post-load', easy_fancybox_handler );
</script>

是一个定义还是&#34;准备就绪&#34;覆盖另一个或两个动作都会发生?

1 个答案:

答案 0 :(得分:1)

作为documented

  

当通过对此方法的连续调用添加多个函数时,它们会在DOM按照添加顺序准备就绪时运行。

因此,设置两次ready处理程序很好。

然而:

  • 第一个缺少尾随})并且应该是语法错误(这可能是它不执行的原因)。
  • 第二个使用jQuery(document).on('ready')重载,不推荐使用:

      

    还有$(document).on( "ready", handler ),从jQuery 1.8开始不推荐使用,并在jQuery 3.0中删除。请注意,如果在附加此事件之前DOM已准备就绪,则不会执行处理程序。