我们目前正在页面上加载 2 个不同版本的 jQuery,1.4.2 和 1.10.1。$ 和 window.jQuery 对象当前指向 1.4.2。
我们使用 1.10.1 版本的 noConflict() 将其设置为 $jq1:
var $jq1 = jQuery.noConflict(true);
有没有办法让 Bootstrap 3.0 插件自动使用 $jq1 而不是 $ 或 window.jQuery?
我们目前正在页面上加载 2 个不同版本的 jQuery,1.4.2 和 1.10.1。$ 和 window.jQuery 对象当前指向 1.4.2。
我们使用 1.10.1 版本的 noConflict() 将其设置为 $jq1:
var $jq1 = jQuery.noConflict(true);
有没有办法让 Bootstrap 3.0 插件自动使用 $jq1 而不是 $ 或 window.jQuery?
如果在加载 jQuery 版本 1.10.1 后直接加载引导 JS,然后将 jQuery 置于无冲突模式,它应该可以工作。
例如:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<!-- Load any Bootsrap JS files before calling jQuery.noConflict() -->
<script src="bootstrap.js"></script>
<script>
// Put jQuery 1.10.2 into noConflict mode.
var $jq1 = jQuery.noConflict(true);
</script>
<!-- This can be before or after the above -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
jQuery.noConflict(true)
将重新分配它们以前的值$
,jQuery
因此是否首先加载版本 1.4.2 并不重要。
这确实意味着您的用户将下载 jQuery 两次,并且您需要记住是否使用$jq1
或$
何时使用 jQuery。
我喜欢用户“ajpiano”在https://forum.jquery.com/topic/multiple-versions-of-jquery-on-the-same-page提供的解释:
<script src='jquery-1.3.2.js'></script>
<script>
var jq132 = jQuery.noConflict();
</script>
<script src='jquery-1.4.2.js'></script>
<script>
var jq142 = jQuery.noConflict();
</script>
首先加载旧版本的 Jquery。
然后你的 Boostrap js,css everthing 就到这里了。最后加上这个,
<script type="text/javascript">
var $versionNumberJ1 = jQuery.noConflict(true);
</script>
然后,像这样使用。,
<script>
$versionNumberJ1 ( function() {
$versionNumberJ1 ( "#tabsModal" ).tabs();
} );
</script>