你如何正确实现jQuery noConflict()方法?

时间:2011-11-23 01:58:25

标签: javascript mootools jquery

我无法使noConflict()方法正常工作。我一直在网上搜索几个小时,似乎无法得到一个可靠的答案。这就是我在标题中的内容......

<script type="text/javascript" src="js/mootools.js"></script>
<script type="text/javascript" src="js/slimbox.js"></script>

<script type="text/javascript" src="js/jquery.js"></script><!-- jQuery script -->
<script type="text/javascript" src="js/page_scroll.js"></script><!-- JavaScript -->
<script src="js/jquery.easing.1.3.js" type="text/javascript"></script><!-- jQuery easing plug-in -->

<script type="text/javascript">
    var $j = jQuery.noConflict();

    // Use jQuery via $j(...)
    $j(document).ready(function(){
        $j("div").hide();
    });

    // Use Mootools with $(...), etc.
    $('someid').hide();
</script>

我的HTML中没有其他jQuery或JavaScript(就在我的外部),所以“在$方法中放置使用noConlict变量的任何内容”都不是一种选择。

基本上我要做的是让slimbox和easing页面滚动(对于我的导航)一起工作。问题当然是一个在另一个被移除时起作用,反之亦然。此外,当我使用noConflict()方法时,我可以使用slimbox而不是pagescroll,但是当我删除noConflict()方法时,我会让pagescroll工作而不是slimbox。因此,noConflict正在做一些事情,我只是不知道那是什么或如何去做。

如果有人可以帮助我,我会很感激。谢谢。

3 个答案:

答案 0 :(得分:1)

当使用其他利用$别名的js libs时, 我使用

找到了可靠的结果
$.noConflict();

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

  // your jQuery code here i.e. 

  // jQuery('some-selector-expression').somefunction();

});

// prototype or mootools code that uses the $ alias works fine here

答案 1 :(得分:0)

你是说你宣布$ j时它不起作用?您可以定义自己的备用名称(例如jq,$ J,awesomeQuery - 您想要的任何内容)。尝试用$

来调用它

答案 2 :(得分:0)

将其包装在匿名函数中:

(function($){
    $(document).ready(function() {
        // function here...
    });
})(jQuery);

查看确切的代码可能有所帮助。