2017-10-15 140 views
0

我正在处理这个好奇的问题好几天了,我真的不明白为什么会发生这种情况。jQuery插件是未定义的,虽然在我的js代码之前被正确包含了

基本上,环境是WordPress和我其中包括两个js文件:

vendor.js -> generated by gulp and all it does is concatenating bower libs together

myScript.js -> my code

我所知道的(与证明):

  • 厂商文件包含我的代码之前(从检查控制台)
  • 我正在使用的插件包含在vendor.js中(在chrome的新标签中打开文件)
  • 这两个文件都正确加载(我打印了一些debu g控制台日志和他们在控制台)

但即使一切看起来都很好,插件仍然是未定义的,无论出于何种原因。 我使用这个插件是这一个:https://github.com/idiot/unslider

和我越来越控制台中的错误是这样的:

Uncaught ReferenceError: unslider is not defined

这是我的代码,我打电话需要这个插件的部分:

jQuery(document).ready(function($) { 
    console.log("unslider is ", unslider); 
    $('#topBannerSlider').unslider({ 
    autoplay: true, 
    delay: 10000, 
    keys: true, 
    nav: true, 
    arrows: { 
     prev: '<a class="unslider-arrow prev fa fa-arrow-circle-left"></a>', 
     next: '<a class="unslider-arrow next fa fa-arrow-circle-right"></a>' 
    } 
    }); 

    $('#homePageTestimonialsCarousel').unslider({ 
    autoplay: true, 
    delay: 20000, 
    keys: true, 
    nav: true, 
    arrows: false 
    }); 
} 

和它同样的,如果我尝试之前jQuery(document).ready()事件加载它,就像这样:

console.log("unslider is ", unslider); 
jQuery(document).ready(function($) { 
    $('#topBannerSlider').unslider({ 
    autoplay: true, 
    delay: 10000, 
    keys: true, 
    nav: true, 
    arrows: { 
     prev: '<a class="unslider-arrow prev fa fa-arrow-circle-left"></a>', 
     next: '<a class="unslider-arrow next fa fa-arrow-circle-right"></a>' 
    } 
    }); 

    $('#homePageTestimonialsCarousel').unslider({ 
    autoplay: true, 
    delay: 20000, 
    keys: true, 
    nav: true, 
    arrows: false 
    }); 
} 

你有什么建议吗?我还可以尝试什么?它还能是什么?我很困难,任何帮助将非常感激。非常感谢

+0

检查这些脚本正在加载的顺序,首先包括jQuery,然后是unslider,然后是你的js代码。 – derloopkat

+0

嗨,我检查了它,一切都按照正确的顺序..这就是为什么我在他们加载unslider.js代码样本后在我的代码示例 – Nick

+0

中很奇怪,在定义了html之后,你是否也这样做? – derloopkat

回答

2

如果我得到这个权利,你说的WordPress,所以尽量

jQuery insted的的$

我以前有这个问题,这解决它。

WordPress,PHP,JQuery和$不混用;)。

+0

之外,在控制台中没有其他问题我不相信,但是这实际上解决了问题!真的很奇怪,但嘿,谢谢你救了我的周末:) – Nick

+0

随时随地;) –

相关问题