WP jQuery出现jQuery未定义函数错误,但可与Google CDN配合使用

时间:2014-09-11 作者:user2855835

我读了几篇文章,劝阻WP开发人员用Google CDN版本的jQuery替换排队的jQuery。我被出卖了。

我现在正在将使用jQuery的WP jQuery版本排队。noConflict()。

然而,我在一个自制的程序中遇到了“undefined is not a function”(未定义不是函数)错误。使用$选择器的js文件。即使我将选择器更改为“jQuery”,我仍然会收到错误。我确保jquery是在之前加载的。js文件。

为了进行测试,如果我将WP jQuery排队与谷歌CDN的版本切换,则不会出现任何错误。

我希望能够使用WP的jQuery,但我似乎无法让它与自主开发的jQuery代码一起工作。

还有其他调试想法吗?

编辑:

这是一片土生土长的。失败的js文件:

var brk = {
    start: function($){

    $("#navigation ul li a").css("color", "#FFF").css("text-decoration", "none");
    $("#topButtons a.clearbtn").css("color", "#FFF").css("background", "transparent").css("border", "1px solid #FFF");
    }
}

jQuery(document).ready(brk.start($));
“undefined is not a function”(未定义不是函数)错误位于第一个$行:$(“#navigation ul li a”)。。。

2 个回复
最合适的回答,由SO网友:Otto 整理而成

嗯,缺点是你的代码不正确。

jQuery(document).ready(brk.start($));
这里的$指的不是任何东西。您应将其更改为:

jQuery(document).ready(function($) { brk.start($) } );
启用noConflict模式时,未定义$值。如果你想定义它,那么你必须自己定义它。

此代码:

jQuery(document).ready(function($) {
...
});
做了几件事。

首先,它将函数挂接到文档。就绪事件。其次,它定义了一个要调用的函数。第三,它将该函数中的代码的$值设置为jQuery。

您的代码没有定义函数,也没有设置$值。你想打电话给brk。从$参数开始,然后将其返回值附加到文档中。准备好的

这个brk.start(whatever) 是函数调用,而不是函数定义本身。您需要定义一个函数来将其附加到文档。就绪事件。

或者,这可能会起作用。我还没有测试过它。

jQuery(document).ready(brk.start);
brk。start(不带括号)是一个函数,因此可以用这种方式引用它。大概

尽管老实说,如果您不想将函数调用附加到文档中。准备好了,只想实时调用它,这样就可以完成任务:

brk.start(jQuery);

SO网友:Robert hue

使用WP的noConflict版本的jQuery。然后像这样使用自定义调用。

<script type="text/javascript">
  <!--
  jQuery(document).ready(function($) {

    $(\'#topmenu\').toggle();

  });
  //-->
</script>
你也可以在里面使用$。我就是这么做的。

结束

相关推荐

如何在WordPress jQuery之前加载插件?

我正在修复一个使用jquery 1.0.0版本的wordpress插件。wordpress中自动包含的jquery版本是1.11.0。在测试站点中,该插件依赖于1.0.0 jquery,不适用于最新版本。然而,它在测试站点上工作,因为插件是在wp包含/js/jquery/jquery之前加载的。在脚本被最新的jquery版本覆盖之前,它使用自己的jquery库版本。它不会在控制台中产生任何错误。但在生产站点中,它在wp包含/js/jquery/jquery之后加载所有插件。那么,在wordpress加载w