2010-07-28 20 views

Respuesta

8

Hay más que solo noConflict.

jQuery es una biblioteca intrusiva. Agrega una propiedad interna jQuery123 (para algunos valores aleatorios por instancia de 123) a cada elemento que toca (que es cualquier cosa con manejadores de datos o eventos, entre otros motivos). En IE, esta propiedad también se refleja como un atributo.

Así que si MooTools o cualquier otra biblioteca (o, de hecho, un método DOM simple) aparece y comienza a jugar con esas propiedades/atributos, o elementos de clonación, o hackear innerHTML, es probable que arruinen estos supuestamente únicos identificadores, lo que hace que jQuery se confunda y comience a portarse mal de una manera extraordinariamente difícil de depurar.

jQuery también manipula un montón de código de evento para intentar hacer que los eventos submit/focus/blur/focusin/focusout/mouseenter/mouseleave funcionen y se propaguen por todos los navegadores. Esto puede confundir a otro código de biblioteca que no lo está esperando.

Por lo tanto, con jQuery 1.4, puede simplemente salirse con la suya con el uso de otra biblioteca al mismo tiempo, siempre y cuando estén trabajando en elementos separados que no interactúan entre sí. (jQuery 1.3 también fue mucho más promiscuo sobre qué elementos 'tocó').

Pero, en general, no recomendaría dos grandes marcos en una página.

0

Simplemente utiliza para asignar jQuery.noConflict jQuery para algo más que $:

<script> 
    jQuery.noConflict(); 
</script> 

$ ahora se refiere a lo que establece en antes de que usted haya iniciado jQuery. jQuery es accesible a través del objeto jQuery.

2

jQuery se puede utilizar en ningún modo a los conflictos:

jQuery.noConflict();

o podría utilizar en lugar de jQuery$.

jQuery('#myelement').hide();

Como bien en MooTools hay un método document.id() que podría ser utilizado en lugar de $:

document.id('myelement');

En caso de que quiera ser capaz de utilizar una $ puede probar el fragmento a continuación:

(function($) { 

    $('#myelement').click(function() { 
     ... 
    }); 


})(jQuery); 

De la misma manera puede usar $ de MooTools

0

Sí, por supuesto que puede, en modo compatibilidad. Pero debe tener cuidado con los complementos jQuery, ya que puede causar algunos dolores de cabeza, ya que no están programados en modo compatibilidad y pueden causar conflictos con complementos de otras bibliotecas. Para solucionar esto, solo tiene que cambiar $ por jQuery en los complementos

Espero que esto ayude.

1

Use el modo seguro en dólares en Mootools y debe estar bien ya que jQuery no extiende nativos.

Cuestiones relacionadas