jQuery.noConflict()
很多其他JavaScript庫同樣使用$作為函式或者變數名,正如jquery做的一樣。
jQuery中,$是jQuery的一個別名,所以可以只使用jQuery。如果需要同時使用jQuery和其他JavaScript庫,需要使用 $.noConflict()把$的控制權交給其他庫,這樣就不會產生衝突。
語法結構:
[JavaScript] 純文字檢視 複製程式碼jQuery.noConflict( [removeAll ] )
removeAll:可選,一個布林值,規定是否將jQuery完全移到一個新的名稱空間。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ jQuery.noConflict(); jQuery(".ant_1").css("color", "red"); $(".ant_2").css("color", "green"); }) </script> </head> <body> <div class="ant_1">螞蟻部落一</div> <div class="ant_2">螞蟻部落二</div> </body> </html>
第二個div中的文字顏色並沒有被設定為綠色,說明"$"控制權已經不屬於jQuery庫。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var jq=jQuery.noConflict(); jQuery(".ant_1").css("color", "red"); jq(".ant_2").css("color", "green"); }) </script> </head> <body> <div class="ant_1">螞蟻部落一</div> <div class="ant_2">螞蟻部落二</div> </body> </html>
也可以為jQuery建立一個別名,當然"jQuery"依然是可以使用的。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ var jq=jQuery.noConflict(true); jq(".ant_1").css("color", "red"); jQuery(".ant_2").css("color","green"); }) </script> </head> <body> <div class="ant_1">螞蟻部落一</div> <div class="ant_2">螞蟻部落二</div> </body> </html>
如果jQuery.noConflict()方法的引數為true,那麼"jQuery"控制權也不屬於jQuery,這時候只能夠使用別名。