Kernel jQuery - metoda noConflict()

Przykład

Użyj metody noConflict() do przypisania nowej nazwy zmiennej jQuery:

var jq=$.noConflict();

Spróbuj sam

Definicja i użycie

Metoda noConflict() przenosi kontrolę nad zmienną $ w jQuery.

Metoda ta uwalnia kontrolę nad zmiennej $ w jQuery.

Metoda ta może również być używana do przypisania nowej nazwy zmiennej jQuery.

Wskazówka:To metoda jest bardzo przydatna, gdy inne biblioteki JavaScript używają $ jako nazwy funkcji.

Gramatyka

jQuery.noConflict(removeAll)
Parametry Opis
removeAll Wartość logiczna. Indykuje, czy dozwolone jest całkowite przywrócenie zmiennej jQuery.

Opis

Wiele bibliotek JavaScript używa $ jako nazwy funkcji lub zmiennej, jQuery również. W jQuery, $ jest jedynie aliasem jQuery, więc nawet bez użycia $ można zapewnić wszystkie funkcjonalności. Jeśli potrzebujemy użyć innej biblioteki JavaScript poza jQuery, możemy zwrócić kontrolę do tej biblioteki, wywołując $.noConflict():

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Kody używające $ z innej biblioteki
</script>

Można go połączyć z metodą .ready() aby nadać alias jQuery obiektom, ta technika jest bardzo efektywna:

<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($) {
    // Kody używające $ jQuery
  });
  // Kody używające $ z innej biblioteki
</script>

W ten sposób, przekazując argument true do tej metody, możemy zwrócić kontrolę nad $ i jQuery do oryginalnej biblioteki. Przed użyciem, pomyśl dobrze!

To jest bardziej ekstremalna wersja niż zwykły noConflict, ponieważ w pełni redefiniuje jQuery. Zwykle jest używane w ekstremalnych przypadkach, takich jak włożenie jQuery do środowiska z wysoką konfliktowością. Uwaga: Po wywołaniu tej metody istnieje wysokie ryzyko, że wtyczki mogą przestanie działać.

Przykład

Przykład 1

Mapuj obiekty odniesienia $ z powrotem do oryginalnych obiektów:

jQuery.noConflict();
jQuery("div p").hide(); // Użycie jQuery
$("content").style.display = "none"; // Użycie $ z innej biblioteki

Przykład 2

Odzyskaj użycie aliasu $, utwórz i uruchom funkcję, w której nadal używasz $ jako aliasu jQuery. W tej funkcji, oryginalny obiekt $ jest nieważny. Ta funkcja jest bardzo skuteczna dla większości wtyczek, które nie zależą od innych bibliotek:

jQuery.noConflict();
(function($) { 
  $(function() {
    // Użycie $ jako aliasu jQuery
  });
})(jQuery);
... // Inne biblioteki używające $ jako aliasu

Przykład 3

Możesz połączyć jQuery.noConflict() z uproszczonym ready, aby kod był bardziej zwięzły:

jQuery.noConflict()(function() {
    // Użycie kodu jQuery
});
... // Inne biblioteki używające $ jako aliasu

Przykład 4

Stwórz nową alias, aby używać jQuery w kolejnej bibliotece:

var j = jQuery.noConflict();
j("div p").hide(); // Kod oparty na jQuery
$("content").style.display = "none"; // Kod oparty na innej bibliotece z użyciem $()

Przykład 5

Całkowicie przenieś jQuery do nowej przestrzeni nazw:

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

Wynik:

dom.query("div p").hide(); // Nowa wersja jQuery
$("content").style.display = "none"; // Inny kod z użyciem $()
jQuery("div > p").hide(); // Inna wersja kodu jQuery