2010-12-15 17 views
0

Ich habe eine Website, die Benutzer dynamisch Widgets hinzufügen können. Diese Widgets verwenden das Peter Higgins Pub/Sub-Plug-in für $. (Subscribe) für ein Event, das von einem anderen 'Core'-Modul veröffentlicht (publiziert) wird.Abmeldung von einer veröffentlichten Veranstaltung mit JavaScript

Ich habe Widgets in ihrem eigenen Namensraum wie folgt aus: km.widget.name1, km.widget.name2, usw.

So sind die von $ erstellt Griffe (subscribe) sind nicht global. .

Ich weiß nicht, wie Sie diese Widgets abbestellen, wenn der Benutzer beschließt, das Widget von seiner benutzerdefinierten Seite zu entfernen.

Woher weiß ich auch, welches Widget Sie abbestellen können?

+1

Haben Sie eine gute Lösung gefunden? Wir werden das gleiche Problem schon bald haben. Wäre interessant zu sehen, wie du es gelöst hast. – henriksen

Antwort

0

Dies löst Ihr Problem nicht direkt, aber es kann Ihnen sehr helfen. This is a recent blog von Sam Clearman. Er beschreibt eine Möglichkeit, Ereignisse zu behandeln Publish/Subscribe ohne dass Plugin:

jQuery benutzerdefinierte Ereignisse in Mittel einen eingebauten bieten auf das Muster in einer Art und Weise zeichnen verwenden veröffentlichen, die funktionell gleichwertig ist und syntaktisch sehr ähnlich sind, zu Higgin der pub/sub plugin: Verbinde Beobachter einfach mit dem Dokument.

Auf diese Weise können Sie möglicherweise Ihre aktuellen Probleme lösen.

+0

Ich hatte diesen Artikel schon einmal gesehen und bin einfach nicht davon überzeugt, dass dies die Antwort ist. – Shawn

0

Ich habe nicht das PubSub Plugin vor, aber ich sah nur an the source code und es sieht aus wie Sie genau abmelden in kann gleich wie Sie sich vorher anmelden, nur mit $.unsubscribe(...) statt $.subscribe(...) verwendet.

Ist dies etwas, das Sie bereits kennen, und das Problem wird durch Ihren Widget-Namespace verursacht? Ich bin nicht wirklich sicher, was Sie mit Namespacing sowieso meinen, da JavaScript keine echten Namespaces (nur Objekte - was ich vermute, was Sie verwenden) unterstützt.

Verwandte Themen