Trabalhando com jQuery e MooTools ao mesmo tempo

by João Pedro Pereira on January 7th, 2010

jQuery & MooToolsHoje estava a melhorar a área de administração para o portal de um cliente que será brevemente lançado, e deparei-me com o problema… Tinha um plugin desenvolvido em jQuery e outro em MooTools que queria ver integrado na mesma página.

Explicação do Porquê do Erro Acontecer

O símbolo ‘$’ é usado como objecto pela jQuery e também pela MooTools, logo existe interferência.

Se chamarmos primeiro a jQuery ela vai correr e criar um objecto chamado ‘$’ com as funções especificas para jQuery, de seguida, chamamos a MooTools que vai criar o seu o objecto também chamado ‘$’ com as funções especificas da MooTools.

A Solução

Depois de alguma pesquisa consegui solucionar o problema e ter os dois a funcionar correctamente no mesmo local, apesar da solução mais vista: jQuery.noConflict(); não funcionar no meu caso.

A solução passou por pegar nos ficheiros de funções jQuery e alterar todos os ‘$’ para ‘jQuery’, porque é a mesma coisa chamar uma função através do objecto ‘$’ quer através do objecto ‘jQuery’, pois o objecto ‘$’ é apenas um shortcut para ‘jQuery’.

Depois a ordem que utilizei para chamar as bibliotecas em si foi a jQuery primeiro e de seguida a MooTools.

Posts Relaccionados

4 Comments
  1. Não é necessário substituir $ por jQuery em todo o lado, só nas chamadas “de raíz”, por exemplo, se tiveres:


    $(document).ready(function() {
    $('#loading').fadeIn('fast');
    });

    Podes substituir por:


    jQuery(document).ready(function($)) {
    $('#loading').fadeIn('fast);
    });

    Pois dentro da função do jQuery o parâmetro que é passado é o próprio jQuery, que, se passares como $, fica com o funcionamento esperado antes do mootools :)

  2. Arlei permalink

    Solução perfeita! Muito obrigado pela sua contribuição!

    Abraço

Trackbacks & Pingbacks

  1. Tweets that mention Trabalhando com jQuery e MooTools ao mesmo tempo | The Blog of a WebDeveloper -- Topsy.com

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS