console.log 在 $(document).ready(function() 时不工作

console.log not working when in $(document).ready(function()

好久没和 jQuery 一起工作了。现在,有了一个全新的项目,我的行为有些奇怪。

脚本加载顺序正确:

<script type='text/javascript' src='http://example.com/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
some other scripts...

<script type='text/javascript' src='http://example.com/wp-content/themes/mytheme/myscript.js?ver=4.9.7'></script>

myscript.js

(function ($) {
    console.log('logA');
    console.log($.fn.jquery);
    $(document).ready(function(){
        console.log('logB');
        console.log($.fn.jquery);
    });
})(jQuery);

使用此代码,我希望有两个日志输出:

logA 1.12.4

logB 1.12.4

但是我只得到 logA 1.12.4 作为输出。

logB 未显示在控制台中,尽管我可以使用 $('#elem, .elem2').

访问 DOM-元素

这是怎么回事?

我也试过不使用匿名函数,结果报错$ is not a function

 $(document).ready(function(){
      console.log('logB');
 });

jQuery-版本:1.12.4

检查你的 jQuery 文件是否正常工作,因为我试过了,但它与你提到的版本一起工作正常

通过评论,在@Rup 提出的观点之后,似乎脚本中的某些内容覆盖了 console.log 方法,因此它不再打印到控制台。要在您的脚本范围内解决此问题,您可以将 console.log 方法传递到您的 IIFE 中,以便它保留分配给日志的​​原始功能。

(function ($, log) {
    log('logA');
    log($.fn.jquery);
    $(document).ready(function(){
        log('logB');
        log($.fn.jquery);
    });
})(jQuery, console.log);