jQuery pangunahing - method na noConflict()

實例

Gamitin ang method na noConflict() upang magpalagay ng bagong pangalang custom sa variable ng jQuery:

var jq=$.noConflict();

Subukan nang personal

Paglilinaw at paggamit

Ang method na noConflict() ay nagpasa ng kontrol ng variable $ sa jQuery.

Ang paraan na ito ay naglibera ng kontrol ng jQuery sa variable ng $.

Ang paraan na ito ay maaari ring gamitin upang magpalagay ng bagong pangalang custom sa variable ng jQuery.

Mga payo:Kahit na gumagamit ng $ ang ibang JavaScript library sa kanilang mga function, ang paraan na ito ay napaka-mahusay.

Mga pangunahing panauhing balita

jQuery.noConflict(removeAll)
Parameter Paglalarawan
removeAll Boolean. Nagtutukoy kung magiging talaga na ibabalik ang variable ng jQuery.

Paliwanag

Maraming JavaScript library ang gumagamit ng $ bilang pangalan ng function o variable, kabilang din ang jQuery. Sa jQuery, $ ay lamang ang pangalan na kinalalagyan ng jQuery, kaya hindi kailangan ng $ upang matiyak ang lahat ng功能性. Kung kailangan namin gamitin ang ibang JavaScript library kung hindi jQuery, maaari naming ibalik ang kontrol sa pamamagitan ng pagtawag sa $.noConflict():

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Kode sa paggamit ng $ ng ibang library
</script>

Maaaring magkasama sa .ready() method upang magpakilala ng pangalang pangalawang jQuery object, ang teknolohiya na ito ay napaka-mahusay:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Kode sa paggamit ng $ ng jQuery
  });
  // Kode sa paggamit ng $ ng ibang library
</script>

Bilang karagdagan, kapag pinapasa ang tunay na parametro sa paraan na ito, maaari naming ibalik ang kontrol ng $ at jQuery sa orihinal na library. Isipin muna bago gamitin!

這是相對於簡單的 noConflict 方法更極端的版本,因為這將完全重新定義 jQuery。這通常用於一種極端的情況,比如你想要將 jQuery 嵌入一個高度衝突的環境。注意:調用此方法後極有可能導致插件失效。

實例

例子 1

將 $ 引用的對象映射回原始的對象:

jQuery.noConflict();
jQuery("div p").hide();	// 使用 jQuery
$("content").style.display = "none";	// 使用其他庫的 $()

例子 2

恢復使用別名 $,然後創建並執行一個函數,在這個函數的作用域中仍然將 $ 作為 jQuery 的別名來使用。在這個函數中,原來的 $ 對象是無效的。這個函數對於大多數不依賴其他庫的插件都十分有效:

jQuery.noConflict();
(function($) { 
  $(function() {
    // 使用 $ 作為 jQuery 别名的代碼
  });
})(jQuery);
... // 其他用 $ 作為別名的庫的代碼

例子 3

可以將 jQuery.noConflict() 與簡寫的 ready 結合,使代碼更緊湊:

jQuery.noConflict()(function(){
    // 使用 jQuery 的代碼
});
... // 其他庫使用 $ 做別名的代碼

例子 4

創建一個新的別名用於在接下來的庫中使用 jQuery 對象:

var j = jQuery.noConflict();
j("div p").hide();	// 基於 jQuery 的代碼
$("content").style.display = "none";	// 基於其他庫的 $() 代碼

例子 5

完全將 jQuery 移動到一個新的命名空間:

var dom = {};
dom.query = jQuery.noConflict(true);

結果:

dom.query("div p").hide();	// 新 jQuery 的代碼
$("content").style.display = "none";	// 另一庫 $() 的代碼
jQuery("div > p").hide();	// 另一版本 jQuery 的代碼