我想在同一页面/标题页面上包含两个jquery文件(一个用于自动完成ajax,另一个用于完整日历)但它们会相互冲突。我怎么能解决这个问题,我已经尝试了noConflict的解决方案,但没有用,请帮助我。
以下是我的代码,包括js文件:
$http
其中第一个文件用于自动完成下拉列表,其他文件用于完整日历事件。
答案 0 :(得分:1)
编辑:对不起,我刚看到你在发帖后尝试了noConflict。我认为它不起作用的唯一原因是你不想更新其中一个文件中的$ / Jquery名称。您可以通过查找和替换非常轻松地完成此操作。
我建议使用jQuery.noConflict(true)从全局范围中删除JQuery对象并将其分配给您选择的对象名称,前提是您不需要使用精确的对象名称:JQuery / $ to访问两个版本的JQuery对象。您可以在包含之后为其中一个版本执行此操作。
例如:jq121 = jQuery.noConflict(true);允许您在全局范围内以jq121的身份访问1.2.1版。如果在包含1.2.1之后调用,这将释放$和JQuery以引用您的其他版本。
他们在这里有一些例子:
https://api.jquery.com/jquery.noconflict/
编辑:我把一个快速的例子放在一起。使用以下代码,您可以使用jq214访问较新的版本,使用默认的$ alias访问旧版本。
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
jq214 = jQuery.noConflict( true );
jq214(document.body).append("jq214 object name is version " + jq214.fn.jquery);
$(document.body).append("<br/>default $ alias is version " + $.fn.jquery);
});
</script>
</body>
</html>
我应该提一下,尽管JQuery团队提到(正如其他人所做的那样),如果可能的话,应该避免包括两个版本。