Backbone.js Ansichten delegateEvents nicht bekommen, gebunden (manchmal)
Ich bin mit Backbone.js und manchmal ist die Ansichten, Ereignisse nicht bekommen, richtig gebunden..
Kann ich die Veranstaltung verbindlich situation mit $(viewselector).data()
in jQuery. Die meiste Zeit gibt es Ereignisse, manchmal gibt es nicht!
Gibt es bekannte Dinge, die ich sollte aufpassen, dass das verursachen kann?
- Können Sie bitte mehr details und vielleicht ein paar code-wie auch? Auch, was ist dein javascript laden Sie bestellen? Sie müssen sicherstellen, dass jQuery/Zepto geladen wird, bevor underscore und backbone.
- danke für Eure Hilfe, jQuery geladen wird, bevor Sie uns/Rückgrat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Veranstaltungen übertragen sind, diese.el, wenn die view initialisiert ist. So müssen Sie zu:
Für das Letzte Element, wenn Sie es zu tun haben, können Sie rufen Sie delegateEvents einmal mehr zu re-delegieren Sie die Veranstaltung auf Ihrer Ansicht.
events: {}
block in Backbone.js verwendet jQuery .delegate () - Funktion, die nur eine Besondere form der .live () - Funktion ist selbst eine Besondere form der .bind () - Funktion deklariert werden, bevor ein DOM-element vorhanden ist. Es sollte nicht notwendig sein, zu definieren, die "el" - Attribut, um die Elemente zu arbeiten, da backbone.js entweder Benutzer tagName oder geben Sie ein div-Element per default.delegateEvents
wieder da würd ich ersetzt die el. Boom, danke.Mein Ansatz in diesen Szenarien ist das hinzufügen
delegateEvents()
im Rendern von jeder Ansicht, die ein Ereignis wie das folgende:Dies ist ideal für die Aussicht besonders dynamisch erstellt, d.h. Ansichten, die deklariert sind neu unter jedem Klick oder so...
empty
"das entbindet alle jQuery-events auf allen Kind-Knoten". Müssen Sie rufen SiedelegateEvents
in dieser situation jedes mal, oder verwenden SiesetElement
(siehe Artikel).delegateEvents
AnrufeundelegateEvents
vor der Delegation derevents
hash.view.remove()
rufenEvents.stopListening