usar two stackoverflow noconflict example como jquery facebook api jquery-ui

two - jquery.noconflict() example



Facebook Connect, jQuery UI y jQuery.noConflict() (1)

Intento crear una página en mi sitio web personal que utilice jQuery e implemente Facebook Connect .

Desafortunadamente, la Facebook client API usa $ token , lo que significa que tengo que llamar a jQuery.noConflict()

Desafortunadamente, desafortunadamente, descubrí que por alguna razón loca y, como señala Rick Strahl, jQuery UI no respeta noConlict (). En absoluto. De hecho, si miras el código fuente, hay $ s por todas partes.

Realmente quiero poder usar jQuery UI; específicamente, el componente dialog() y el que se puede draggable sería muy agradable, pero aún más, no quiero tener que editar manualmente, probar y mantener - mi propia copia de cualquier parte de jQuery UI.

Este es el más reciente de una serie de yaks que he tenido que afeitarme, lo que me tiene a mi ingenio. ¿Alguna sugerencia? ¡Ayuda!


La publicación a la que has hecho referencia es bastante antigua y está desactualizada. La versión 1.0 de jQuery UI tenía este problema en un par de archivos y se solucionó tan pronto como se informó.

Toda la interfaz de usuario de jQuery está envuelta en un closure que se transfiere en jQuery como $ y, por lo tanto, puede usar $ internamente, mientras que $ se usa para algo externo.

Desde http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery

Use la siguiente técnica, que le permite usar $ dentro de un bloque de código sin sobrescribir permanentemente $:

(function($) { /* some code that uses $ */ })(jQuery)

Nota: Si usa esta técnica, aún puede usar Prototype a través de la window.$ Eg, window.$(''some_element_id'') . Cualquier función fuera de su cierre que haga referencia a $ invocará a Prototype, incluso si se llama desde dentro de su cierre.

Es por eso que verá $ dentro de los archivos de la interfaz de usuario jQuery, pero tenga la seguridad de que cualquier versión reciente de jQuery UI (1.5+) es completamente compatible con jQuery.noConflict()