jQuery多独本子要跟另js库冲突要是常用的$符号的题材,这个题材
jquery早早就产生给咱留下处理办法了,下面一起来探视解决办法。

1.同一页面jQuery多个版本要冲解决办法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>jQuery测试页</title>
</head>
<body>
<!-- 引入1.6.4版的jq -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script> var jq164 = jQuery.noConflict(true); </script>
<!-- 引入1.4.2版的jq -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script> var jq142 = jQuery.noConflict(true); </script>

<script>
(function($){
    //此时的$是jQuery-1.6.4
    $('#');
})(jq164);
</script>

<script>
jq142(function($){
    //此时的$是jQuery-1.4.2
    $('#');
});
</script>

</body>
</html>

 

2.同一页面jQuery和外js库冲突解决措施

jQuery noConflict() 方法
noConflict() 方法会释放会 $ 标识符的支配,这样任何脚本就可以使她了。
jquery.js在prototype.js之前进行引入,如:

<script src="jquery.js" type="text/javascript"></script>
<script src="prototype.js" type="text/javascript"></script>
<p id="pp">test---prototype</p>
<p>test---jQuery</p>

2.1 当然,您还可以由此全名替代简写的计来利用 jQuery:

<script type="text/javascript">
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js,全名可以不调用。
jQuery(function(){                    //使用jQuery
    jQuery("p").click(function(){
        alert( jQuery(this).text() );
    });
});
//此处不可以再写成$,此时的$代表prototype.js中定义的$符号。

$("pp").style.display = 'none';        //使用prototype
</script>

2.2  您吗得创建好的简写。noConflict() 可回到对 jQuery
的援,您可以管其存入变量,以供稍后使用。请圈之事例:

<script type="text/javascript">
var $j = jQuery.noConflict();        //自定义一个比较短快捷方式
$j(function(){                        //使用jQuery
    $j("p").click(function(){
        alert( $j(this).text() );
    });
});

$("pp").style.display = 'none';        //使用prototype
</script>

2.3  如果你的 jQuery 代码块使用 $
简写,并且您不愿意改这快捷方式,那么你可以将 $ 符号作为变量传递给
ready 方法。这样便好当函数内采取 $ 符号了 – 而以函数外,依旧不得不使用
“jQuery”:

<script type="text/javascript">
jQuery.noConflict();     //将变量$的控制权让渡给prototype.js
jQuery(document).ready(function($){
    $("p").click(function(){        //继续使用 $ 方法
        alert( $(this).text() );
    });
});

jQuery(function($){                    //使用jQuery
    $("p").click(function(){        //继续使用 $ 方法
        alert( $(this).text() );
    });
});
</script>

2.4 使用语句块:

<script type="text/javascript">
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js
(function($){                        //定义匿名函数并设置形参为$
    $(function(){                    //匿名函数内部的$均为jQuery
        $("p").click(function(){    //继续使用 $ 方法
            alert($(this).text());
        });
    });
})(jQuery);                            //执行匿名函数且传递实参jQuery

$("pp").style.display = 'none';        //使用prototype
</script>

这种用语句块的方式十分有因此,在咱们自己写jquery插件时,应该都动这种写法,因为我们不理解具体做事历程遭到是什么样顺序引入各种js库的,而这种语句块的写法却能挡冲突。

 

注意:
1.援javascript类库时,把jQuery引用在最后当,可以避冲突。
2.专程要注意jQuery()代替$()时,jQuery是分轻重缓急写的,因为javascript本身就是是别轻重缓急写的。

 

相关文章

网站地图xml地图