abril 20th, 2009Usando jQuery com outras bibliotecas
Estou fazendo alguns testes com o jQuery para utilizá-lo em um sistema interno para a empresa onde trabalho, porém como utilizamos o framework “ajaxCFC” e o mesmo usa a lib Prototype, tive alguns problemas de compatibilidade com o jQuery e o Prototype.
Tanto o Prototype quanto o jQuery utilizam um atalho global para suas funções, ou seja “$” (cifrão), então quando faço o uso de $(“campo“) ele irá chamar a função da biblioteca que for carregada por último, ex.:
<script src=”prototype.js”></script>
<script src=”jquery.js”></script>
Neste caso ele usaria as funções da lib jQuery.
[ Problema ]
Vários códigos fazendo uso do Prototype, ex.: $(“campo_select”).value;
Neste caso ocorrerá um erro (valor da função seria undefined), uma vez que a sintaxe correta do jQuery é $(“#campo_select”).val();
[ Solução ]
Para usar o jQuery com qualquer outra biblioteca javascript, podemos setar um namespace/alias para ele, simplemesmente usando a função jQuery.noConflict(), dessa forma:
<script src=”prototype.js”></script>
<script src=”jquery.js”></script>
<script>
var $j = jQuery.noConflict();
// pegar o valor do select usando o jQuery
$j(“#campo_select”).val();
// pegar o valor do select usando o Prototype
$(“campo_select”).value;
</script>
*Mais informações aqui.
Pronto! Simples, rápido e indolor.