如何使用jQuery.noConflict()解决IE上的jQuery冲突?

时间:2011-03-04 17:12:45

标签: jquery ruby-on-rails-3 jquery-plugins

我们有一个网站,我们希望我们的客户使用iFrame嵌入他们的网站。不幸的是,除了可怜的IE 6,7和8之外,它适用于所有浏览器。

问题是我们得到:

  

Object不支持此属性或方法。

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

这是一个使用jQuery 1.4.2的Rails 3应用程序。我们不知道 where 来进行jQuery.noConflict()调用。此外,我们对于我们正在做的众多jQuery插件会做些什么感到困惑。任何人都可以提供任何见解吗?

3 个答案:

答案 0 :(得分:2)

noConflict()放弃对$的控制权,以便其他图书馆可以使用它。

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

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

这将有效地将$传递回您的就绪功能,以便您可以像预期的那样使用它。

答案 1 :(得分:0)

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

e.g。

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

答案 2 :(得分:0)

<强> 1

$something=jQuery.noConflict();

now $something becomes $, 

例如:

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

2 为了处理插件,使用所有插件使用jQuery代替$

如果任何插件使用$而不是此

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