因此,我正在开发一个平台,每次加载页面时都会注入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 $变量来解决开发人员的$(文档)...调用。如果是这样,我不知道如何解决这个问题,如果不是,我希望有一个解决方案,我可以将其提供给开发人员的注入文件。
谢谢!
答案 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>
部分中的致电订单必须是下一个:
.noConflict()
可能如下所示:
<script type="text/javascript">var mc$ = jQuery.noConflict();</script>
在脚本中使用此语法后:
mc$('#container').height();
答案 2 :(得分:0)
您可能会发现此答案有用:jquery noConflict not working in IE8 only