jQuery没有冲突模式的额外功能

时间:2010-10-25 04:24:01

标签: jquery

我确信这是一个简单的问题,似乎无法让它正常工作。

我与jQuery存在一些冲突,因此我使用了官方文档中提到的别名功能。

jQuery(document).ready(function($){
  $('.loadmore').addClass('hidden'); // works fine!

  loadmore();

});

function loadmore(){
  $('.loadmore').addClass('hidden'); // doesn't work!
}

如何让别名为我的代码工作,我将这些代码放入函数中以便更好地组织和重用?由于上面示例中提供的问题,我目前正在使用jQuery代替$。我以为我可以保存一些数据并使用所有教程中显示的别名。

3 个答案:

答案 0 :(得分:1)

你可以试试这个......

(function($) {

// Put all your jQuery here... and you can use $

})(jQuery);

答案 1 :(得分:1)

jQuery no conflict mode实际上将$函数设置为不同的名称,如下所示:

$('select something').doSomethingElse(); // Works
var $j = jQuery.noConfilct();
$('select something').doSomethingElse(); // Doesn't work
$j('select something').doSomethingElse(); // Works

如果你不想为jQuery使用$以外的名字,你可以这样做:

(function ($) {
    $('selector').doSomething();
    $('another selector').doSomethingElse();
}(jQuery));

这使jQuery = $,但只在括号内,允许你像往常一样工作,永远不会导致冲突。

答案 2 :(得分:0)

在这种情况下,您可以将$传递给您的函数。

jQuery(document).ready(function($){
    $('.loadmore').addClass('hidden'); // works fine!

    loadmore($);

});

function loadmore($){
    $('.loadmore').addClass('hidden'); // should work fine too!
}