在WordPress中以jQuery No Conflict模式加载

时间:2019-02-08 20:20:16

标签: javascript jquery wordpress

我正试图摆脱这种未被捕获的TypeError:

  

$不是javascript.js?ver = 5.0.3:65

的函数

这是一个WordPress主题,我认为我已经在functions.php文件中正确加载了脚本:

wp_enqueue_script('script-name', get_template_directory_uri().'/assets/js/javascript.js', array('jquery'), false, true);

然后按照答案here中的建议,我将现有代码包装到一个匿名函数中,并将jQuery作为参数传递

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

但是TypeError仍然存在。我想以noConflict模式加载jQuery,但除了将jQuery.noConflict();添加到我的javascript.js文件的顶部之外,不知道该怎么做。我尝试了一下,但是没有用。

对于正确执行此操作的任何建议,我们都会感激不尽。

我的网站在这里运行:https://refresh.drawyourpets.com/

1 个答案:

答案 0 :(得分:1)

所以我去看了看你的脚本,看起来有点像这样:

(function($){
    // uses $
})

(function($){
    // uses $
})

(jQuery);

即使从纯粹的句法角度来看,这对我来说还是很错误的。您要做的是将脚本包装一次,如下所示:

(function($) {
    // your entire script using $ normally:
})(jQuery);

这个想法是,您要将jQuery传递给立即执行的函数,并且可以在函数内部安全地调用$