0

我在一个 Wordpress 网站上工作,并从一些简单的 sqripts 开始:

(function () {
    // Flex
    if ($(".flexslider").length) {
        $('.flexslider').flexslider();
    }
})(jQuery);

我也试过

$(function () {
    // Flex
    if ($(".flexslider").length) {
        $('.flexslider').flexslider();
    }
});

jQuery 正在运行,为什么无法$识别?如果我$用它代替jQuery它工作正常。

这也不起作用:

jQuery(document).ready(function() {

    $('.section_header').click(function(){
        alert('test');
    });
});
4

5 回答 5

5
   (function ($) {
        // Flex
        if ($(".flexslider").length) {
            $('.flexslider').flexslider();
        }
    })(jQuery);

试试这个

顶部参数是用作底部参数参考的参数

所以例如你可以这样做

(function (somethingHereCool) {
    // Flex
    if (somethingHereCool(".flexslider").length) {
        somethingHereCool('.flexslider').flexslider();
    }
})(jQuery);

发生这种情况的原因(主要在 wordpress 中)是因为 wordpress 使用 jQuery 的$.noConflict() By Defualt

所以这基本上意味着$它不再属于 jQuery,所以你可以像上面那样做,并在那个范围内重新定义 $ 供你使用。您基本上是复制 jQuery 并将其提供给 $

于 2013-07-05T12:09:30.207 回答
0

$ 在 jQuery 中具有不同的含义/功能。在我的 .jsp 文件中制作 jQueries 时,我注意到了同样的情况。我不确定 $ 的设计目的是什么,但我在美元的地方使用 jQuery

于 2013-07-05T12:11:18.440 回答
0

jQuery 还有一个非冲突选项(参见:http ://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/ )。如果定义了 nonConflict,则不会识别 $。

编辑:除此之外,如果 "jQuery(document).ready(function() {" 不起作用,我认为 jQuery 实际上没有正确链接(或者在你做任何事情之前)。

于 2013-07-05T12:16:04.333 回答
0

以下在 Wordpress 中对我有用

jQuery(function($) {
//code in here
});
于 2013-07-05T12:18:05.743 回答
0

添加到康纳在他的回答中所说的内容,基本上是您需要将$as 参数传递给函数,以便使用$as jQuery

默认情况下它不是这样的原因是因为 jQuery 提供了一个选项来禁用 $. 这通常在您使用不同的 JS 框架时使用,该框架使用自己的$变量实现,因此不会出现冲突。

禁止 jQuery 使用$. 您需要编写以下内容,最好在导入 jQuery 库之后直接编写。在导入任何其他框架之前也应该导入它。

jQuery.noConflict();
于 2013-07-05T12:23:29.203 回答