jQuery noConflict()问题

时间:2011-06-04 22:59:54

标签: javascript jquery firefox internet-explorer-8

因此,我正在开发一个平台,每次加载页面时都会注入jQuery-1.2.6。我开发了我的页面以使用jQuery-1.4.2,所以当我的页面加载时,我的页面上有2个jQuery实例。

为了避免任何冲突,我在我的页面之外的JS文件中包含以下行:

var mc$ = jQuery.noConflict();
jQuery(function($)

如果我在最初使用$的地方使用mc $,那么似乎一切正常。

我在Firebug和IE中遇到错误,我不知道如何解决。

在我的页面加载时,在平台上注入的文件中,开发人员已完成:

 $(document).ready(function() {

并且Firebug中的错误表明:'$不是函数'。

此错误仅在我更改后才开始显示:

var mc$ = jQuery.noConflict();

我在想通过创建mc $变量来解决开发人员的$(文档)...调用。如果是这样,我不知道如何解决这个问题,如果不是,我希望有一个解决方案,我可以将其提供给开发人员的注入文件。

谢谢!

3 个答案:

答案 0 :(得分:4)

根本原因是将两个jQuery实例加载到一个页面中。通过它的声音,jQuery的原始实例(1.2.6)也从全局$变量中解除绑定。

http://api.jquery.com/jQuery.noConflict/开始,您可以尝试为jQuery.noConflict()调用提供一个额外的参数来表示卸载jQuery,因为看起来您的实例1.4.2正在加载到1.2.6之前

除此之外,如果没有测试确切的情况,我不知道还有什么其他帮助:)

答案 1 :(得分:2)

<head>部分中的致电订单必须是下一个:

  1. jQuery库№1;
  2. noConflict for it;
  3. jQuery库№2。
  4. .noConflict()可能如下所示:

    <script type="text/javascript">var mc$ = jQuery.noConflict();</script>
    

    在脚本中使用此语法后:

    mc$('#container').height();
    

答案 2 :(得分:0)

您可能会发现此答案有用:jquery noConflict not working in IE8 only