在哪里使用jQuery.noConflict

时间:2009-09-21 23:18:26

标签: javascript jquery

我有一些我在jQuery中给出的代码,我真的很陌生。我需要使用jQuery.noConflict()方法,因为我也使用Mootools框架。我只是不知道应该在'jQuery'的代码中替换$符号。任何帮助将不胜感激!

该代码位于www.cshellarchitecture.com/test/js/flexibg.js

4 个答案:

答案 0 :(得分:3)

这很简单 - 在您输入jQuery.noConflict();后,您应该只使用$替换所有jQuery个实例。

或者,如果您习惯依靠$作为视觉速记来辨别何时调用框架,则可以执行$jq = jQuery.noConflict();然后使用$jq而不是整个代码中的jQuery。在您的情况下,您可以在提供给您的代码中将$替换为$jq

答案 1 :(得分:3)

由于您以your code之类的方式构建module pattern,您可以执行以下操作:

var flexiBackground = (function($){ // notice the $ argument
  //$ === jQuery only within this scope...

})(jQuery.noConflict()); // call noConflict and pass the jQuery reference to $

通过这样做,您将能够通过$标识符仅在分配给flexiBackground的自执行匿名函数的范围内正常引用jQuery。

答案 2 :(得分:0)

从您的链接代码文件中获取的一些示例:

    var $window = $(window),
    $body = $('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = ($.browser.msie && parseInt($.browser.version, 10) <= 6);

应该是:

    var $window = jQuery(window),
    $body = jQuery('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) <= 6);

答案 3 :(得分:0)

noConflict()方法的jQuery文档说:

  

运行此函数以将$变量控制回第一个实现它的库....通过使用此函数,您将只能使用'jQuery'变量访问jQuery。

在这种情况下,如果您在没有冲突模式下运行,则每次通过“$”变量调用jQuery都应该替换为“jQuery”。