【问题标题】:jquery function isn't firing in wordpress themejquery 函数没有在 wordpress 主题中触发
【发布时间】:2016-01-09 07:32:07
【问题描述】:

我正在构建一个 WordPress 主题(真正学习)并正确设置函数文件(来自另一个教程),并且 jquery 正在加载和工作。

但是,在我正在转换的引导模板中,有一些函数调用从未触发。我的 custom.js 文件中的函数如下所示:

jQuery(document).ready(function() {
            App.init();
            OwlCarousel.initOwlCarousel();
            ParallaxSlider.initParallaxSlider();
        });
     alert ("test");

作为测试,我发出警报调用,发现它在 document.ready 函数之外触发得很好。如果我将电话拉到 document.ready 之外,它们仍然不会触发。但我几乎可以肯定他们需要的 js 文件加载正常。

我可能遗漏了一些非常简单的东西。感谢您的帮助

【问题讨论】:

  • js文件在哪里加载?您必须在 body 标记结束之前添加所有 js 文件,首先是 jquery,然后是其他 js 文件,最后是您的自定义 js 文件。 WordPress 中的所有脚本通常在 functions.php 中的 wp_footer 中排队。
  • js文件都加载了吗?
  • 您的浏览器调试器控制台肯定会引导您了解错误。
  • 是的,我已将所有 JS 排入队列,而 custom.js 位于最后一个位置。会不会是 document.ready 在其他地方没有这些调用就被触发了?
  • 好的,我看到“未捕获的 TypeError:$ 不是函数”,但我不知道将 noconflict 设置放在哪里。我认为这可能是答案...感谢您的进一步指导!

标签: jquery wordpress


【解决方案1】:

如果您调用的方法期望使用$ 而不是jQuery,您可以在代码周围创建一个匿名函数,并将jQuery 作为参数传递,如下所示:

(function($){
    $(document).ready(function() {
        App.init();
        OwlCarousel.initOwlCarousel();
        ParallaxSlider.initParallaxSlider();
     });
})(jQuery);

我添加了第一行和最后一行,并将原来的jQuery(document)改为$(document)

有关$ 在这种情况下如何工作的更多详细信息包含在此问题中: jQuery syntax - when to use $ (dollar) vs jQuery

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多