Facebook Connect, jQuery UI, en jQuery.noConflict ()

stemmen
6

Ik ben op zoek naar een pagina te bouwen op mijn persoonlijke website die zowel gebruikt jQueryen werktuigen Facebook Connect.

Helaas, het Facebook client APImaakt gebruik van de $ token, wat betekent dat ik moet bellenjQuery.noConflict()

Double-helaas, ik heb ontdekt dat voor sommige gekke reden en als Rick Strahl opmerkt, jQuery UI niet respecteert noConlict (). Te allen. In feite, als je kijkt naar de broncode, er $is alles over.

Ik echt wil in staat zijn om jQuery UI te gebruiken - in het bijzonder, de dialog()component, en draggableecht leuk zou zijn als goed - maar ik zelfs moreso, heb ik niet willen hebben om met de hand te bewerken - en testen en onderhouden - mijn eigen exemplaar van elke deel van jQuery UI.

Dit is de meest recente in een reeks van yaks die ik heb gehad om te scheren die mij ten einde raad. Eventuele suggesties? Helpen!

De vraag is gesteld op 25/12/2008 om 00:24
bron van user
In andere talen...                            


1 antwoorden

stemmen
18

Het bericht dat u hebt verwezen is vrij oud en verouderd. De 1.0release van jQuery UIhad deze kwestie in een paar bestanden en werd zo snel werd gemeld opgelost.

Alle van jQuery UI is verpakt in een closuredie voorbijgaat in jQuery als $en kan dus $ intern gebruiken terwijl $ wordt gebruikt voor iets anders extern.

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

Gebruik de volgende techniek, waarmee u tot $ binnenkant van een blok code te gebruiken zonder permanent overschrijven $:

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

Opmerking: Als u deze techniek gebruikt, kunt u nog steeds gebruik maken van Prototype via window.$bv window.$('some_element_id'). Elke functie buiten uw afsluiting, die referenties $zal roepen Prototype, ook al riep vanuit uw sluiting.

Dit is waarom je zult zien $in de jQuery UI-bestanden, maar wees gerust, recente versie van jQuery UI (1.5+)wordt volledig ondersteund doorjQuery.noConflict()

antwoordde op 25/12/2008 om 05:28
bron van user

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