【问题标题】:How to solve jQuery conflicts on IE using jQuery.noConflict()?如何使用 jQuery.noConflict() 解决 IE 上的 jQuery 冲突?
【发布时间】:2011-03-04 17:12:45
【问题描述】:

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

问题是我们得到:

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

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

这是一个使用 jQuery 1.4.2 的 Rails 3 应用程序。我们不知道将jQuery.noConflict() 调用在哪里。此外,我们很困惑这会对我们正在做的众多 jQuery 插件产生什么影响。任何人都可以提供任何见解吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    这将有效地将$ 传递回您的就绪函数,以便您可以按预期使用它。

    【讨论】:

      【解决方案2】:

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

      例如

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

      【讨论】:

        【解决方案3】:

        1

        $something=jQuery.noConflict();
        
        now $something becomes $, 
        

        例如:

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

        2对于处理插件,使用所有插件使用jQuery代替$

        如果有任何插件使用$而不是这个

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

        【讨论】:

          猜你喜欢
          • 2011-12-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-19
          • 2023-03-30
          • 1970-01-01
          • 2012-11-20
          相关资源
          最近更新 更多