【发布时间】:2018-03-26 23:53:25
【问题描述】:
我这几天一直在研究这个非常奇怪的问题,我真的不明白为什么会这样。
基本上,环境是WordPress,我包括两个js文件:
vendor.js -> 由 gulp 生成,它所做的只是连接 bower 库一起
myScript.js -> 我的代码
我所知道的(有证据):
- 供应商文件包含在我的代码之前(从控制台检查)
- 我使用的插件包含在 vendor.js 中(在 chrome 的新选项卡中打开文件)
- 两个文件均已正确加载(我打印了一些调试控制台日志,它们在控制台中)
但是,即使在我看来一切都很好,该插件仍然未定义,无论出于何种原因。 我使用的插件是这个: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
});
}
你有什么建议吗?我还能尝试什么?还能是什么?我真的被困住了,任何帮助都将不胜感激。非常感谢
【问题讨论】:
-
检查这些脚本的加载顺序,首先包括 jQuery,然后是 unslider,然后是你的 js 代码。
-
嗨,我检查过了,一切都井井有条..这就是为什么它对我来说真的很奇怪
-
在定义html后加载unslider.js的代码示例中,你也是这样做的吗?
-
您是否在正在加载库的
<script>标记上设置了async或defer属性?还请检查控制台是否有错误,因为应该有一些线索可以说明您的代码为什么不工作 -
我已经复制了您的代码,并且运行良好。唯一的问题是您的代码末尾缺少
)。不确定这是否是不相关的问题
标签: javascript jquery wordpress jquery-plugins