在使用jQuery開發的時候,可能還會使用到其他的JS函式庫,例如Prototype,但多庫共存時可能會發生衝突;若是發生衝突後,可以透過以下幾種方案進行解決:
一、 jQuery函式庫在其他函式庫之前導入,直接使用jQuery(callback)方法如:
test---prototype
test---jQuery
#< ;script type="text/javascript">
jQuery(function(){ //直接使用jQuery ,沒有必要呼叫"jQuery.noConflict()"函數。
jQuery(" p").click(function(){
alert( jQuery(this).text() );
});
});
$("pp"). style.display = 'none'; //使用prototype
二、 jQuery函式庫在其他函式庫之後導入,使用jQuery.noConflict()方法將變數$的控制權讓渡給其他函式庫,有以下幾種方式:
<script type="text/javascript"> jQuery.noConflict(); //将变量$的控制权让渡给prototype.js jQuery(function(){ //使用jQuery jQuery("p").click(function(){ alert( jQuery(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> //代码二 <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> //代码三 <script type="text/javascript"> jQuery.noConflict(); //将变量$的控制权让渡给prototype.js jQuery(function($){ //使用jQuery $("p").click(function(){ //继续使用 $ 方法 alert( $(this).text() ); }); }); $("pp").style.display = 'none'; //使用prototype </script> //代码四 <script type="text/javascript"> jQuery.noConflict(); //将变量$的控制权让渡给prototype.js (function($){ //定义匿名函数并设置形参为$ $(function(){ //匿名函数内部的$均为jQuery $("p").click(function(){ //继续使用 $ 方法 alert($(this).text()); }); }); })(jQuery); //执行匿名函数且传递实参jQuery $("pp").style.display = 'none'; //使用prototype /*********************************************************************/ jQuery(document).ready(function(){ //一加载页面的时候就将权利让出去 jQuery.noConflict(); }); </script>
以上是使用jquery.noConflict()解決jquery庫與其他庫衝突的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!