jQuery e Mootools insieme con no conflict


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:

jQuery.noConflict();

// Usa jQuery via jQuery(...)

jQuery(document).ready(function(){       jQuery("div").hide();     });

// Usa Prototype con $(...), etc.

 $('someid').hide();

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:

var $j = jQuery.noConflict();

// Usa jQuery via $j(...)

$j(document).ready(function(){       $j("div").hide();     });

// Usa Prototype con $(...), etc.

$('someid').hide();

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:

jQuery.noConflict();

// Inserisci tutto il tuo codice JQuery

jQuery(document).ready(function($){ // jQuery userà $

$("div").hide();     });

// Usa Prototype con $(...), etc.

$('someid').hide();

 

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()".

// Usa jQuery via jQuery(...)

jQuery(document).ready(function(){       jQuery("div").hide();     });

// Usa Prototype with $(...), etc.

$('someid').hide();

Fai la tua richiesta

A Vostra disposizione per consigli e informazioni