如何避免未捕获的jQuery错误

如何避免未捕获的jQuery错误,jquery,wordpress,Jquery,Wordpress,我在我的WordPress主题中使用了Owl旋转木马,目前在我的页面中应用jQuery,而在调用该函数并抛出错误之前,可能不会加载jQuery。。。如何避免这个错误?我正在使用文档。准备好的功能也是。。。。。虽然我只想在页脚而不是页眉中加载jQuery。。。有人来指引我吗?我错在哪里? 这是我正在使用的代码 $(文档).ready(函数(){ $(“#公文包滑块”).owlCarousel({ 循环:对, 差额:10, 导航:是的, 项目:3, 响应:{ 0: { 项目:2 }, 600: {

我在我的WordPress主题中使用了Owl旋转木马,目前在我的页面中应用jQuery,而在调用该函数并抛出错误之前,可能不会加载jQuery。。。如何避免这个错误?我正在使用文档。准备好的功能也是。。。。。虽然我只想在页脚而不是页眉中加载jQuery。。。有人来指引我吗?我错在哪里? 这是我正在使用的代码

$(文档).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以及。。。那我为什么要面对这个问题呢?哇,救生圈,它就像一个迷人的男人。。。非常感谢你是我的老师和英雄从那时起。。。再次感谢亲爱的