wie man einen eventListener auf ein Objekt in javascript, das ausgelöst wird, wenn Objekt bearbeitet wird?
Ich habe ein kompliziertes UI-Struktur, die manipuliert dynamisch, und sagen, ich habe eine ui_state
Objekt, wo ich Benutzer die neueste UI-Staaten wie die Reiter zu sehen war, was drin war, die tab-etc.
Zum Beispiel:
var ui_states = {
tabs : [
{
name : "some tab",
active : true,
children : { ... }
},
{
name : "some other tab",
children : { ... }
}
]
}
Ich das auf html5 localStorage
und wenn der Benutzer aktualisiert die Website es öffnet sich die Seite gleich. Und jedes mal, wenn die änderungen an der Benutzeroberfläche dieses Objekt wird entsprechend geändert. Und nur, nachdem es geändert ich muss sagen updateLocalStorage()
die perfekt funktioniert.
Meine Frage ist für diese Strömung, kann ich ein benutzerdefiniertes Ereignis erstellen, um meine ui_states
Objekt so etwas wie ui_states.addEventListener('onchange', function(){ //do stuff })
um nicht zu laufen, dass updateLocalStorage()
- Funktion jedes mal, wenn ich Bearbeiten das Objekt?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist die Vermischung der JavaScript-Programmierung mit DOM-Programmierung. Veranstaltungen sind ein reiner DOM-Konzept. JS-Objekte nicht unterstützt event-Handler.
Der einzige Weg, es zu tun ist, erstellen Sie Getter und setter. Es gibt Möglichkeiten, dies zu tun mit Besondere Eigenschaften, aber leider, browser-Unterstützung ist ein bisschen vielleicht. Der andere Weg, es zu tun ist mit ausdrücklicher Methoden und private Variablen. Dies ist möglich, aber ein wenig komplexer.