【问题标题】:jQuery plugin is undefined although is properly included before my js codejQuery 插件未定义,尽管在我的 js 代码之前正确包含
【发布时间】: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的代码示例中,你也是这样做的吗?
  • 您是否在正在加载库的&lt;script&gt; 标记上设置了asyncdefer 属性?还请检查控制台是否有错误,因为应该有一些线索可以说明您的代码为什么不工作
  • 我已经复制了您的代码,并且运行良好。唯一的问题是您的代码末尾缺少)。不确定这是否是不相关的问题

标签: javascript jquery wordpress jquery-plugins


【解决方案1】:

如果我猜对了,你说的是 WordPress,那就试试吧

jQuery insted of $

我之前遇到过这个问题,现在解决了。

WordPress、PHP、JQuery 和 $ 不能混用 ;)。

【讨论】:

  • 我不相信,但这实际上解决了问题!真的很奇怪,但是嘿,谢谢你救了我的周末:)
  • 随时都可以;)
猜你喜欢
  • 2012-03-15
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 2021-07-31
相关资源
最近更新 更多