javascript - 我如何在单个页面上使用多个 jquery 版本?

标签 javascript jquery html

如何在单个页面上使用多个 jquery 版本?我有两个不同的 jquery 版本,两者都是不同功能所必需的,但两个版本相互冲突。如果我将使用 jquery noconflict 那么 products scripts 将不起作用?

<script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script type="text/javascript">
oldjq = jQuery.noConflict(true);
</script> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>

Jquery 1.9.1 需要运行这个脚本

<script>
$(document).ready(function () {
$('input:checkbox').click(function(){
var $inputs = $('input:checkbox')
if($(this).is(':checked')){
$inputs.not(this).prop('disabled',true); 
}else{
$inputs.prop('disabled',false);
}
})
})
</script>

<input type="checkbox">
<input type="checkbox"> 
<input type="checkbox">
<input type="checkbox">
<input type="checkbox" />

Jquery 1.4.2 需要运行这些脚本

<script type="text/javascript" src="products2/js/prototype.js"></script>
<script type="text/javascript" src="products2/js/common.js"></script>
<script type="text/javascript" src="products2/js/menu.js"></script>
<script type="text/javascript" src="products2/js/banner_pack.js"></script>
<script type="text/javascript" src="products2/js/light_box.js"></script>
<script type="text/javascript" src="products2/js/cloud-zoom.1.0.2.js"></script>
<script type="text/javascript" src="products2/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="products2/js/jquery.mix.js"></script>

问题现在在这里解决了最终代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
(function ($) {
$(document).ready(function () {
$('input:checkbox').click(function(){
var $inputs = $('input:checkbox')
if($(this).is(':checked')){
$inputs.not(this).prop('disabled',true); // <-- disable all but checked one
}else{
$inputs.prop('disabled',false); // <--
}
})
});
})(jQuery);
</script>

<script type="text/javascript"  
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script type="text/javascript" src="products2/js/prototype.js"></script>
<script type="text/javascript" src="products2/js/common.js"></script>
<script type="text/javascript" src="products2/js/menu.js"></script>
<script type="text/javascript" src="products2/js/banner_pack.js"></script>
<script type="text/javascript" src="products2/js/light_box.js"></script>
<script type="text/javascript" src="products2/js/cloud-zoom.1.0.2.js"></script>
<script type="text/javascript" src="products2/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="products2/js/jquery.mix.js"></script>

最佳答案

因为它只有几行代码,所以我建议修改需要 jQuery 1.9.1 的 block ,以便它可以与 jQuery 1.4.2 一起使用

我在下面更新了它以使用 jQuery 1.4.2。我使用 attr 方法而不是 prop 来操作 disabled 属性(你可以查看文档 here 看看这是否可能导致任何问题)。此解决方案避免运行两个 jquery 实例,并避免必须查找您已经使用的所有库/插件的更新版本。

$(document).ready(function () {
    $('input:checkbox').click(function(){
        var $inputs = $('input:checkbox')
        if($(this).is(':checked')){
            $inputs.not(this).attr('disabled',true); 
        }else{
            $inputs.attr('disabled',false);
        }
    })
})

参见 fiddle here .

关于javascript - 我如何在单个页面上使用多个 jquery 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048943/

相关文章:

javascript - jQuery TwoWay 数据绑定(bind)

javascript - 如何在 safari 浏览器中的打印页面(window.print())函数中隐藏页眉和页脚?

javascript - Angular2 [innerHTML] if else 验证

jquery - Selectivizr 导致选择下拉列表需要单击两次才能在 IE8 及更低版本中打开

jQuery DataTables Ajax 调用不起作用

javascript - 无法将数据从 Controller 读取到 View 中

javascript - 如何在浏览器中使用 Javascript 或 Jquery 将图像 URL 输出到控制台日志?

php - 使用 echo 转义 php 中的字符

javascript - 如何获取 FormData 中的多个复选框值?

javascript - 链接到打开的选项卡