Come evitare conflitti tra script Jquery

In questa breve guida vi svelero’ un piccolo trucco per far “convivere” diversi script Jquery nella stessa pagina o usare contemporamente le librerie Prototype. Molte volte infatti, data la chiamata ricorrente di funzioni e variabili col $, gli script Jquery vanno letteralmente in conflitto rendendo il sito instabile o addirittura non funzionando correttamente.

Ricordiamo intanto che, per chi non lo sapesse la funzione $() presente in quasi tutti gli script e’ solo un ALIAS. Per far funzionare tutti gli script bastera’ quindi usare la pratica e comoda modalita’ “no conflict()” che permette di sostituire il dollaro con la parola “jQuery”. In questo modo viene differenziata la variabile (o la funzione) dalle precedenti usate nella pagina web.

<script>
jQuery.noConflict();
// Usa jQuery con jQuery(...)
jQuery(document).ready(function(){
  jQuery("#foto").show("slow");
});
// Codice di una libreria con $(...)
// ...
</script>

In questo modo e’ possibile, come vedete chiaramente dall’esempio sovrastante, usare due codici jQuery che altrimenti andrebbero in conflitto. La soluzione e’ utile anche (e sopratutto) se state usando contemporaneamente anche le librerie Prototype (anch’esse usano le variabili $ ).

Esistono anche ulteriori metodi, ma ho pensato di illustrarvi quello piu’ semplice da attuare. Per altri metodi vi rimando alla pagina ufficiale.

NOTA PERSONALE: Ho trovato molto utile questa soluzione sopratutto usando Joomla e Virtualmart. Il template da me costruito aveva delle animazioni con jQuery che non facevano reagire il carrello quando si cliccava su “aggiungi”.

ULTIMA REVISIONE: 09/Marzo/2011

  1. Ciao
    ho da poco dovuto cambiare il template al nostro sito (joomla 1.5) e ne ho trovato uno free molto interessante; purtroppo lo slideshow in home page funziona con tutti i browser tranne I. Explorer.
    Conosco il php ma il jquery no.
    Posso contattarti in pv?
    Grazie
    Grazie a chiunque potrà risolvermi questo problema

    1. Se non funziona solo su IE (magari in versione 8 o inferiori) non si tratta di conflitto bensì probabilmente lo slider usa tecniche avanzate (CSS3 et simila) o comunque non compatibili con versioni obsolete di IE (si la versione8 di IE è obsoleta).

      Ti consiglio di chiedere prima al creatore dello slider per ulteriori info riguardo il funzionamento su IE.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Up Next:

Set di pennelli natalizi per photoshop

Set di pennelli natalizi per photoshop