在$ {document).ready(function()中时console.log无法正常工作

时间:2018-10-03 14:12:58

标签: jquery wordpress console.log

很长一段时间没有使用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访问DOM元素,但控制台中未显示

$('#elem, .elem2')

这是怎么了?

我还尝试了不带匿名功能的情况,这给我一个错误$ is not a function

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

jQuery版本:1.12.4

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:-4)

检查您的jQuery文件是否正常运行,因为我尝试了它,但是它在您提到的版本上正常运行