很长一段时间没有使用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
答案 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文件是否正常运行,因为我尝试了它,但是它在您提到的版本上正常运行