我有一些我在jQuery中给出的代码,我真的很陌生。我需要使用jQuery.noConflict()方法,因为我也使用Mootools框架。我只是不知道应该在'jQuery'的代码中替换$符号。任何帮助将不胜感激!
该代码位于www.cshellarchitecture.com/test/js/flexibg.js
答案 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”。