www.zambros.it

Certificato Google Adwords

Google Partners - Certification piccolo


JQuery - Mootools con no conflict PDF Stampa E-mail
Venerdì 05 Marzo 2010 20:51

Alcune volte per necessità o per forza maggiore c'è il bisogno di utilizzare più framework javascript.

Un esempio molto comune è l'utilizzo di mootools e di jquery.

 


Per esempio sul CMS Joomla è presente la libreria mootools, se dobbiamo utilizzare effetti di jquery iniziamo ad avere dei problemi.

La causa principale è che entrambi utilizzano il carattere $ come funzione.

JQuery a differenza degli altri framework ha creato il sistema per far condividere le librerie.

 

SOVRASCRIVERE LA FUNZIONE $ USANDO

JQUERY.NOCONFLICT()

Un metodo è quello di  sovrascrivere di default chiamando jQuery.noConflict(). Basterà quindi usare JQuery al posto di $, le altre librerie useranno tranquillamente la funzione $.Per esempio:

 <html>
 <head>
   <script src="/prototype.js"></script>
   <script src="/jquery.js"></script>
   <script>
     jQuery.noConflict();
     
     // Usa jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });
     
     // Usa Prototypecon$(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

Con questo metodo dovrai fare attenzione a usare JQuery al posto di $ nelle chiamate di JQuery.

Esiste un altro modo per non creare conflitti. Se vuoi essere veramente sicuro che non ci siano conflitti basterà cambiare la variabile $ con per esempio $j come nell'esempio che segue:

 <html>
 <head>
   <script src="/prototype.js"></script>
   <script src="/jquery.js"></script>
   <script>
     var $j = jQuery.noConflict();
     
     // Usa jQuery via $j(...)
     $j(document).ready(function(){
       $j("div").hide();
     });
     
     // Usa Prototype con $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

Ovviamente puoi definire qualsiasi nome come  jq, $J, awesomeQuery, qualsiasi cosa tu voglia. Ovvio che più corto è, meno si deve scrivere.

Infine se non desideri definire nomi alternativi al nome JQuery e vuoi davvero usare il valore $ e non preoccuparti che le altre librerie usino $ esiste un'altra soluzione. Questa è la soluzione più usata per la compatibilità tra librerie diverse, inoltre c'è veramente poco codice da scrivere. Esempio:

 <html>
 <head>
   <script src="/prototype.js"></script>
   <script src="/jquery.js"></script>
   <script>
     jQuery.noConflict();
     
     // Inserisci tutto il tuo codice JQuery
     jQuery(document).ready(function($){
       // jQuery userà $
       $("div").hide();
     });
     
     // Usa Prototype con $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

 

INCLUDERE JQUERY PRIMA DELLE ALTRE LIBRERIE

Se includi JQuery prima delle altre librerie, dovresti usare "jQuery" quando vuoi utilizzare jQuery, e la "$" rimane valida per le altre librerie. Così non è necessario creare la sovrascrittura usando la chiamata "jQuery.noConflict()".

 <html>
 <head>
   <script src="/jquery.js"></script>
   <script src="/prototype.js"></script>
   <script>
     // Usa jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });
     
     // Usa Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>

Ultimo aggiornamento Sabato 17 Luglio 2010 10:28
 

Aggiungi commento


Codice di sicurezza
Aggiorna

Richiedi subito il tuo preventivo Gratuito al 338.8835425

SimDice Tweet


Free Software

DadoPubblicato online il simulatore del lancio di dadi. La versione è flash cioè non salva i dati.
Prossimamente ci sarà una versione dove si potranno visualizzare tutti i tiri eseguiti!
L'applicazione si trova a questo link.


Twitter



P.IVA: 03864690239 - CF: ZMBMTT82A25A459W - Cell 338 8835425 - info@zambros.it