jQuery Core - metodo noConflict()

Esempio

Assegna un nuovo nome alla variabile jQuery utilizzando il metodo noConflict():

var jq=$.noConflict();

Prova personalmente

Definizione e uso

Il metodo noConflict() cede il controllo della variabile $ al jQuery.

Questo metodo rilascia il controllo della variabile $ della libreria jQuery.

Questo metodo può anche essere utilizzato per assegnare un nuovo nome personalizzato alla variabile jQuery.

Suggerimento:Utilità

Sintassi

jQuery.noConflict(removeAll)
Parametro Descrizione
removeAll Valore booleano. Indica se è permesso restituire completamente il controllo della variabile jQuery.

Descrizione

Molte librerie JavaScript utilizzano $ come nome di funzione o variabile, jQuery non fa eccezione. In jQuery, $ è semplicemente un alias di jQuery, quindi è possibile garantire tutte le funzionalità anche senza utilizzare $. Se dobbiamo utilizzare un'altra libreria JavaScript oltre a jQuery, possiamo restituire il controllo a questa libreria chiamando $.noConflict():

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Codice che utilizza $ di un'altra libreria
</script>

Può essere combinato con il metodo .ready() per assegnare alias a oggetti jQuery, questa tecnica è molto efficace:

<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($) {
    // Codice che utilizza $ di jQuery
  });
  // Codice che utilizza $ di un'altra libreria
</script>

Inoltre, passando true a questo metodo, possiamo restituire il controllo di $ e jQuery alla libreria originale. Prenditi del tempo a rifletterci prima di usarlo!

Questa versione è più estrema rispetto al metodo noConflict semplice, perché riedifinerà completamente jQuery. Questo viene solitamente utilizzato in situazioni estreme, come quando si desidera嵌入 una环境 highly conflicting. Attenzione: è probabile che dopo la chiamata a questo metodo gli plugin non funzionino.

Esempio

Esempio 1

Mappare l'oggetto che fa riferimento a $ all'oggetto originale:

jQuery.noConflict();
jQuery("div p").hide(); // Utilizzo di jQuery
$("content").style.display = "none"; // Utilizzo di $() di altre librerie

Esempio 2

Ripristinare l'uso dell'alias $, quindi creare ed eseguire una funzione, nella quale l'oggetto $ originale è invalido. Questa funzione è molto efficace per la maggior parte degli plugin che non si affidano a altre librerie:

jQuery.noConflict();
(function($) { 
  $(function() {
    // Codice che utilizza $ come alias di jQuery
  });
})(jQuery);
... // Altri codici di librerie che utilizzano $ come alias

Esempio 3

È possibile combinare jQuery.noConflict() con la versione abbreviata ready per rendere il codice più compatto:

jQuery.noConflict()(function(){
    // Codice che utilizza jQuery
});
... // Altri codici di librerie che utilizzano $ come alias

Esempio 4

Creare un nuovo alias per utilizzare l'oggetto jQuery nelle prossime librerie:

var j = jQuery.noConflict();
j("div p").hide(); // Codice basato su jQuery
$("content").style.display = "none"; // Codice $() basato su altre librerie

Esempio 5

Spostare completamente jQuery in un nuovo namespace:

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

Risultato:

dom.query("div p").hide(); // Un nuovo codice jQuery
$("content").style.display = "none"; // Codice $() di un'altra libreria
jQuery("div > p").hide(); // Un'altra versione del codice jQuery