2011-03-04 53 views
1

我们有一个网站,我们希望我们的客户使用iFrame嵌入他们的网站。不幸的是,它工作在每一个浏览器除了IE惨6,7和8如何使用jQuery.noConflict()解决IE上的jQuery冲突?

的问题是,我们得到:

对象不支持此属性或方法。

第一次提到$在我们的jQuery中。我们知道为什么会发生这种情况,显然是由于与客户现场的现有JS库冲突。但是,我们不知道的是如何解决这个问题。

这是一个使用jQuery 1.4.2的Rails 3应用程序。我们不知道其中要拨打jQuery.noConflict()的电话。另外,我们对于我们正在做的众多jQuery插件会做什么感到困惑。任何人都可以提供任何见解吗?

回答

2

noConflict()放弃了$所以其他库的控制可能会使用它。

我会用这段代码包装所有的jQuery代码。

$.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 

这将有效地传递$回到你准备的功能,所以你可能会像你期望使用它。

+0

+1给你这比我好 – mcgrailm 2011-03-04 17:29:38

0

jQuery.noConflict();作为您在页面上运行的第一个JS语句(加载您的库之后)。

例如

$(document).ready(function() { 
    jQuery.noConflict(); 
}); 
0

$something=jQuery.noConflict(); 

now $something becomes $, 

如:

$j=jQuery.noConflict(); 
$j('#anElement').addClass('red'); 

处理插件,使用所有的插件使用jQuery代替$

如果任何插件-in正在使用$而不是此

//your plugin file 
(function(){ 
$=jQuery; 
})();