如何避免未捕获的jQuery错误
我在我的WordPress主题中使用了Owl旋转木马,目前在我的页面中应用jQuery,而在调用该函数并抛出错误之前,可能不会加载jQuery。。。如何避免这个错误?我正在使用文档。准备好的功能也是。。。。。虽然我只想在页脚而不是页眉中加载jQuery。。。有人来指引我吗?我错在哪里? 这是我正在使用的代码如何避免未捕获的jQuery错误,jquery,wordpress,Jquery,Wordpress,我在我的WordPress主题中使用了Owl旋转木马,目前在我的页面中应用jQuery,而在调用该函数并抛出错误之前,可能不会加载jQuery。。。如何避免这个错误?我正在使用文档。准备好的功能也是。。。。。虽然我只想在页脚而不是页眉中加载jQuery。。。有人来指引我吗?我错在哪里? 这是我正在使用的代码 $(文档).ready(函数(){ $(“#公文包滑块”).owlCarousel({ 循环:对, 差额:10, 导航:是的, 项目:3, 响应:{ 0: { 项目:2 }, 600: {
$(文档).ready(函数(){
$(“#公文包滑块”).owlCarousel({
循环:对,
差额:10,
导航:是的,
项目:3,
响应:{
0: {
项目:2
},
600: {
项目:3
},
1000: {
项目:3
}
}
})
});
这是在我的页面中,而jquery正在页脚中加载 首先,为了避免错误,请使用以下代码包装代码:
(function($){
// your code goes here
})(jQuery);
这将确保$==jQuery
其次,在Wordpress中将脚本排队时,将jQuery添加为依赖项:
wp_enqueue_script ( 'YourScript', 'your-script.js', array('jQuery') )
如果您不能像上面那样做,另一种方法是使用DOMContentLoaded
处理程序,这正是document.ready
所做的,但是没有jQuery-当它启动时,您应该有可用的jQuery
:
document.addEventListener('DOMContentLoaded', function() {
$('#portfolio-slider').owlCarousel({
loop: true,
margin: 10,
nav: true,
items: 3,
responsive: {
0: {
items: 2
},
600: {
items: 3
},
1000: {
items: 3
}
}
})
});
这是在调用代码之前不断检查jQuery是否已加载的一种方法:- 函数jQueryLoaded(){ $(文档).ready(函数(){ $(“#公文包滑块”).owlCarousel({ 循环:对, 差额:10, 导航:是的, 项目:3, 响应:{ 0: { 项目:2 }, 600: { 项目:3 }, 1000: { 项目:3 } } }) }); } 函数checkForjQuery(){ window.jQuery?jQueryLoaded():setTimeout(checkForjQuery); } checkForjQuery();
为什么会这样
$(document).ready()
在加载dom时执行其内部代码,但您在加载jquery库之前调用了该函数,因此浏览器不知道$(document).ready()的含义
解决办法
你可以用一些方法来处理它;您可以在加载jQuery库的行之后移动代码,您可以将代码添加到单独的js文件中,并在jQuery库之后加载它(推荐)。。。或者也可以使用vanilla js等待dom就绪,如:
document.addEventListener("DOMContentLoaded", function() {
$('#portfolio-slider').owlCarousel({
loop: true,
margin: 10,
nav: true,
items: 3,
responsive: {
0: {
items: 2
},
600: {
items: 3
},
1000: {
items: 3
}
}
});
});
检查最后一个解决方法。您能发布代码吗?这是我刚才在问题文档中提供的代码。如果jQuery在使用前已包含,ready
将解决此问题。在包含jQuery之后,您可以在页脚中移动代码,但是,我不能这样做,我必须在我的页面中使用其他内容,而我正在使用document.ready以及。。。那我为什么要面对这个问题呢?哇,救生圈,它就像一个迷人的男人。。。非常感谢你是我的老师和英雄从那时起。。。再次感谢亲爱的