【问题标题】:WordPress jQuery uncaught TypeError: $ is not a functionWordPress jQuery 未捕获类型错误:$ 不是函数
【发布时间】:2016-03-31 14:23:49
【问题描述】:

我的 jQuery 中有一个用于我的 wordpress 网站的函数。它在我的 main.js 和上面的 document.ready 中,并且我的 main.js 在 jQuery 加载后被加载。

一切都在我的静态网站版本中运行,当我尝试在 wordpress 的主题中实现它时它不起作用

功能:

function toggleChevron(e) {
    $(e.target)
        .prev('.panel-heading')
        .find("i.indicator")
        .toggleClass('glyphicon-triangle-bottom glyphicon-triangle-left');
}

$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);

它在我的控制台中给出了这个错误:

Uncaught TypeError: $ is not a function`

当我尝试将$ 替换为jQuery 时,我的控制台中没有出现任何错误,但它不起作用。有人知道这里发生了什么吗? 提前致谢!

【问题讨论】:

  • 这段代码在页面的什么位置? jQuery加载后会执行吗?
  • 如果您在 ID 为“accordion”的元素在 DOM 中之前运行 .on() 调用,您将不会收到任何错误,但调用不会执行任何操作。
  • 如果jQuery 变量有效,但$ 并不意味着另一个插件已将$ 引用从jQuery 中移除,或者您在某处使用过$.noConflict()。无论哪种方式,我们都无法帮助您找到代码中可能存在的位置。
  • @YarGnawh 是的,这是我的 main.js,我的 main.js 是在加载 jQuery 之后加载的。我应该补充一点,我所有的其他 jQuery 都可以工作。我编辑了 OP。
  • @Pointy 对不起,我不明白你的意思

标签: javascript php jquery wordpress


【解决方案1】:

确保您的脚本以正确的顺序加载,如果您的网站在无冲突模式下使用 jQuery,您有两种选择:

(function( $ ) {
  $(function() {
    // Your code here
  });
})(jQuery);

或者

jQuery( document ).ready(function( $ ) {
  // Your code here
});

【讨论】:

  • 它适用于我的新功能,但所有旧功能都不再适用...即使在不同的脚本或我的 html 中...:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多