58

.js我购买的主题中的文档可能有错误:

$('.tagcloud a').wrap('<span class="st_tag" />');

我正在尝试解决它,但我不是程序员,所以我不知道如何解决。该网站是这样的:http ://www.framerental.com 。

4

12 回答 12

142

您使用jQuery.noConflict();So$是未定义的。

你可以在这里阅读更多关于它的文档

尝试以这种方式修改您的代码(将$符号添加到就绪函数):

jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
});
于 2012-09-04T07:10:47.763 回答
40

功能错误在几乎所有内容管理系统中都很常见,有几种方法可以解决这个问题。

  1. 使用以下方法包装您的代码:

    <script> 
    jQuery(function($) {
    
    YOUR CODE GOES HERE
    
    });
    </script>
    
  2. 您还可以使用 jQuery 的 APInoConflict();

    <script>
    $.noConflict();
    jQuery( document ).ready(function( $ ) {
    // Code that uses jQuery's $ can follow here.
    });
    // Code that uses other library's $ can follow here.
    </script>
    
  3. 另一个使用 noConflict 而不使用 document ready 的例子:

    <script>
    jQuery.noConflict();
        (function( $ ) {
            $(function() { 
                // YOUR CODE HERE
            });
         });
    </script>
    
  4. 您甚至可以选择创建自己的别名以避免这样的冲突:

    var jExample = jQuery.noConflict();
    // Do something with jQuery
    jExample( "div p" ).hide();
    
  5. 另一个更长的解决方案是将 $ 的所有引用重命名为 jQuery:

    $( "div p" ).hide();jQuery( "div p" ).hide();

于 2014-01-05T13:48:26.217 回答
20

而不是这样做:

$(document).ready(function() { });

你应该这样做:

jQuery(document).ready(function($) {

    // your code goes here

});

这是因为 WordPress 可能在将来或现在将 $ 用于 jQuery 以外的其他东西,因此您需要以 $ 只能在 jQuery 文档就绪回调中使用的方式加载 jQuery。

于 2017-02-27T17:32:56.057 回答
15

只需添加以下内容:

<script>
var $ = jQuery.noConflict();
</script>

到 header.php 中的 head 标签。或者,如果您想在管理区域(或不使用 header.php 的地方)中使用美元符号,就在您想要使用它的地方之前。

(可能存在一些我不知道的冲突,请对其进行测试,如果有,请使用此处或以下链接提供的其他解决方案。)

资料来源: http: //www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/

于 2016-02-18T13:05:42.663 回答
9

正如一些人所建议的那样,您要么不包括 jquery toolkit/lib,要么存在各种冲突。测试:包括 jQuery 并像这样测试:

console.log($);
console.log($ === jQuery);

如果$不是未定义的,并且$ === jQuery记录为假,那么您肯定会遇到冲突。用你的替换可以$解决jQuery这个问题,但这可能非常乏味(所有额外的输入......)。通常我开始我的脚本$jq = _$ = jQuery;至少有一个对 jQuery 对象的更短的引用。
当然,在您这样做之前,请检查您是否不小心覆盖了预先设置的变量:当然,console.log($jq, _jQ, _$);无论哪个 undefined应该被单独留下

于 2012-09-04T07:34:15.823 回答
9

我添加了一个在该部分末尾加载的自定义脚本文件head,并在顶部插入了以下内容:

(function (jQuery) {
    window.$ = jQuery.noConflict();
})(jQuery);

(这是对Fanky答案的修改)

于 2017-03-22T09:41:39.493 回答
9

除了 noConflict,这也很有帮助:

(function( $ ) {
    // Variables and DOM Caching using $.
    var body = $('body');
    console.log(body);
})( jQuery );
于 2017-11-14T09:57:14.887 回答
3

如果你已经包含了 jQuery,可能会有冲突。尝试使用jQuery而不是$.

于 2012-09-04T07:09:09.293 回答
2

有一种简单的方法可以修复它。只需安装一个插件并激活它。更多信息:https ://www.aitlp.com/wordpress-5-3-is-not-a-function-fix/ 。

使用 Wordpress 5.3 版测试。

于 2019-11-26T00:55:00.890 回答
0

我在我的 WordPress 网站中遇到了与 jquery 相同的问题,我通过重新排列脚本解决了这个问题。

在此处输入图像描述

如果 aowl 首先在我的网站中加载,那么我会在问题上提到错误。

并确保 jquery 在 aowl carousel 脚本之前首先加载,然后添加下面的代码,错误不应该出现。希望它可以帮助将来的人。

  jQuery(document).ready(function($) {
        // Code that uses jQuery's $ can follow here.
    });
于 2021-03-27T01:55:17.980 回答
0

我能够很容易地解决这个我简单的排队 jQuery wp_enqueue_script("jquery");

于 2018-11-07T18:54:08.767 回答
-5

jQuery可能会丢失。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

于 2012-09-04T07:05:39.930 回答