繁体   English   中英

如果jquery.js两次包含在页面中怎么办?

[英]what if jquery.js is include into the page twice?

如果我两次将jquery.js引入页面( 无意或有意 ),会发生什么?

jQuery中是否有任何机制可以处理这种情况?

在AFAIK中,后一个jquery将覆盖前一个jquery,并且如果与前一个jquery有某种动作绑定,则将其清除。

如何避免后一个覆盖前一个?

===编辑===

我不明白为什么这个问题投了反对票。 否决票的人可以给出答案吗?

==再次编辑== @ user568458

对了,现在是测试代码:

<html>
<head>
</head>
<body>
fast<em id="fast"></em><br>
slow<em id="slow"></em><br>
<em id="locker"></em>
</body>
<script type="text/javascript">
function callback(type){
    document.getElementById(type).innerHTML=" loaded!";
    console.log($.foo);
    console.log($);
    console.log($.foo);
    $("#locker").html(type);
    console.log($("#locker").click);
    $("#locker").click(function(){console.log(type);});
    $.foo = "fast";
    console.log($.foo);
}
function ajax(url, type){
    var JSONP = document.createElement('script');
    JSONP.type = "text/javascript";
    JSONP.src = url+"?callback=callback"+type;
    JSONP.async = JSONP.async;
    JSONP.onload=function(){
        callback(type);
    }
    document.getElementsByTagName('head')[0].appendChild(JSONP);
}
</script>
<script>
ajax("http://foo.com/jquery.fast.js", "fast");
ajax("http://foo.com/jquery.slow.js", "slow");
</script>
</html>

它产生了结果:

undefined test:12
function (a,b){return new e.fn.init(a,b,h)} test:13
undefined test:14
function (a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)} test:16 
fast test:19
undefined test:12
function (a,b){return new e.fn.init(a,b,h)} test:13
undefined test:14
function (a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)} test:16 
fast

前一个(jquery.fast.js)的令牌“ $”将被后一个(jquery.slow.js)的令牌“ $”覆盖。

有什么方法可以避免覆盖?

我确实尝试了以下代码:

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
            $(function() {
                    $('#try').click(function() {
                            alert('ok');
                    });
            });
    </script>
    <script type="text/javascript" src="jquery.js"></script>
</head>
<body>

<button id="try">Try me</button>

</body>
</html>

没事 点击后,我会收到警报。 如果第二个jquery.js在按钮之前或之后在body标签中加载,则结果相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM