Facebook Connect, jQuery UI et jQuery.noConflict ()

voix
6

Je suis en train de construire une page sur mon site personnel que les deux utilisés jQueryet met en œuvre Facebook Connect.

Malheureusement, Facebook client APIutilise le $ token, ce qui signifie que je dois appelerjQuery.noConflict()

Double-malheureusement, j'ai trouvé que , pour une raison folle et que Rick Strahl souligne, jQuery UI ne respecte pas noConlict (). Du tout. En fait, si vous regardez le code source, il y a $de partout.

Je vraiment veux être en mesure d'utiliser l' interface utilisateur jQuery - Plus précisément, le dialog()composant, et draggableserait vraiment bien aussi - mais je même moreso, je ne veux pas avoir à modifier manuellement - et tester et maintenir - ma propre copie d'une partie de l' interface utilisateur jQuery.

C'est le plus récent d'une série de yaks j'ai dû me raser ce qui m'a à la fin de mon esprit. Aucune suggestion? Aidez-moi!

Créé 25/12/2008 à 00:24
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
18

Le message que vous avez parlé est assez vieux et obsolète. La 1.0libération de jQuery UIa cette question dans quelques dossiers et a été fixé dès qu'il a été signalé.

Toutes jQuery UI est enveloppé dans un closurequi passe dans jQuery $et peut donc utiliser en interne $ , tandis que $ est utilisé pour quelque chose d' autre à l' extérieur.

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

Utilisez la technique suivante, qui vous permet d'utiliser $ à l'intérieur d'un bloc de code sans écraser de façon permanente $:

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

Remarque: Si vous utilisez cette technique, vous pouvez toujours utiliser Prototype par window.$exemple window.$('some_element_id'). Toute fonction en dehors de votre fermeture que les références $invoquera Prototype, même si elle est appelée à l' intérieur de votre fermeture.

C'est pourquoi vous verrez $dans les fichiers jQuery UI, mais rassurez - vous, une version récente jQuery UI (1.5+)est complètement pris en charge avecjQuery.noConflict()

Créé 25/12/2008 à 05:28
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more