如何解决jquery的多个版本之间的冲突?
我意识到,对于在一个页面上使用多个jquery版本的问题,已经有了各种各样的答案,但我还没有弄清楚如何应用它们 在我的页面上有两个.js文件——一个用于操作可折叠菜单,另一个用于thickbox gallery。当我添加gallery时,可折叠菜单停止工作。当我尝试使用下面链接中的无冲突解决方案时,菜单起作用,但画廊图像将不再加载 你知道我做错了什么吗?我是否需要向.html文件和.js文件添加内容 代码:如何解决jquery的多个版本之间的冲突?,jquery,Jquery,我意识到,对于在一个页面上使用多个jquery版本的问题,已经有了各种各样的答案,但我还没有弄清楚如何应用它们 在我的页面上有两个.js文件——一个用于操作可折叠菜单,另一个用于thickbox gallery。当我添加gallery时,可折叠菜单停止工作。当我尝试使用下面链接中的无冲突解决方案时,菜单起作用,但画廊图像将不再加载 你知道我做错了什么吗?我是否需要向.html文件和.js文件添加内容 代码: $noConflict之前(真) var$log=$(“#log”); $log.a
$noConflict之前(真)
var$log=$(“#log”);
$log.append(“第二次加载的jQuery版本($):“+$.fn.jQuery+”
”;
jq16min=jQuery.noConflict(true);
$log.append(“在$noConflict(true)之后)”;
$log.append(“第一次加载的jQuery版本($):“+$.fn.jQuery+”
”;
$log.append(“第二次加载的jQuery版本(jqlatest):“+jqlatest.fn.jQuery+”
”;
还尝试:
<script type="text/javascript" src="../../01 Main/includes/jquery-1.6.min.js"></script>
<script type="text/javascript" src="../../01 Main/includes/main.js"></script>
<script type="text/javascript">
var jQuery_1_6_min = $.noConflict(true);
</script>
<script type="text/javascript" src="../scripts/jquery-latest.js"></script>
<script type="text/javascript" src="../scripts/thickbox.js"></script>
<script type="text/javascript">
var jQuery_latest = $.noConflict(true);
</script>
var jQuery_1_6_min=$.noConflict(true);
var jQuery_latest=$.noConflict(true);
使用多个版本的jquery似乎一点也不明智,但如果必须,可以将其中一个版本分配给另一个全局变量ie
链接到第一个版本
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
window._$ = jQuery;
它可能重复到: 简言之,他的回答是:
<!-- load jQuery 1.1.3 -->
<script type="text/javascript" src="http://example.com/jquery-1.1.3.js"></script>
<script type="text/javascript">
var jQuery_1_1_3 = $.noConflict(true);
</script>
<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>
var jQuery_1_1_3=$.noConflict(true);
var jQuery_1_3_2=$.noConflict(true);
必须经历同样的事情:)您使用的是什么版本的jQuery,您可以发布代码吗?而且我已经好几年没有真正看到使用thickbox了。如果这是旧版本的dep脚本,我会切换到其他可以使用更现代版本(>=1.8.x)的脚本。这听起来像是您使用了两个jQuery插件,它们相互冲突。jQuery.noConflict对此没有帮助。要查看发生了什么,我们需要一些代码。可能的重复:@prodigitalson,我正在使用jquery-1.6.min和jquery-latest,对于更更新的thickbox版本,您有什么建议吗?嗯,我尝试在html文件中这样做,但两个脚本都不起作用。我是否需要同时重写插件文件中的某些内容?可能还有其他问题,请在问题中发布您的代码作为更新..很好的解决方案…谢谢
(function(){
var newscript = document.createElement('script');
newscript.type = 'text/javascript';
newscript.async = true;
newscript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
})();
<!-- load jQuery 1.1.3 -->
<script type="text/javascript" src="http://example.com/jquery-1.1.3.js"></script>
<script type="text/javascript">
var jQuery_1_1_3 = $.noConflict(true);
</script>
<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>