Sì, jQuery.noConflict
è un buon inizio, ma dal momento che l ' "altro libreria" si sta utilizzando è anche jQuery, ci sarà probabilmente complicazioni.
Quando si carica jQuery, definisce $
e jQuery
come variabili globali. L'utilizzo di .noConflict
"rinuncerà al controllo della variabile $
", ovvero qualsiasi sia lo stato $
, verrà impostato nuovamente. Se v1.3.2 viene caricato per primo e si carica l'ultimo pacchetto (1.6.4 come al momento) successivo, .noConflict
farà riferimento a v1.3.2 $
ma si riferirà ancora a 1.6.4.
In sostanza, è necessario eseguire il jias alias prima di caricare l'ultimo pacchetto. See my fiddle used to simulate your situation (incollato anche in basso).
<script type="text/javascript">
//alias v.1.3.2
var $132 = $;
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
//alias v1.6.4
var $164 = $, jQuery164 = $;
//reset original variables to v1.3.2
$ = jQuery = $132;
console.log("v1.3.2: ", $().jquery, jQuery().jquery)
console.log("v1.6.4: ", $164().jquery, jQuery164().jquery)
$('div') //selected using v1.3.2
$164('div') //selected using v1.6.4
</script>
Dopo il caricamento 1.6.4, è necessario alias e impostare $
e jQuery
di nuovo ai 1.3.2 oggetti. Questo non usa .noConflict
perché essenzialmente fa la stessa cosa. RichFaces continuerà a funzionare utilizzando 1.3.2 e scriverà il tuo codice contro la versione 1.6.4 con alias. Nel mio caso, ciò significa utilizzare $164
invece di utilizzare $
. Spero che abbia un senso. Sono sicuro che il violino sarà più chiaro.
Infine, è bene sviluppare codice utilizzando jquery-latest.pack.js
ma non si dovrebbe mai usare quello sul vostro sito di produzione. Il motivo è perché ad un certo punto in futuro, jQuery verrà aggiornato. Se stai caricando l'ultimo pacchetto, quegli aggiornamenti potrebbero interrompere la funzionalità del tuo sito senza che tu te ne accorga. È più sicuro scegliere una versione e attenervisi, eseguendo l'upgrade solo quando confermi che il tuo sito continuerà a funzionare correttamente.
@Moin Zaman [questo post] (http://stackoverflow.com/questions/3881953/how-do-i-use-the-latest-version-of-jquery-and-get-back-the-for -jquery-in-rich) dice che possiamo usare più versioni di jQuery fianco a fianco, ma non dire come. –