jQuery Core - metodo noConflict()
Esempio
Assegna un nuovo nome alla variabile jQuery utilizzando il metodo noConflict():
var jq=$.noConflict();
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