Mam skomplikowaną strukturę interfejsu użytkownika, który jest manipulowany dynamicznie i powiedzieć mam obiektu ui_state
gdzie trzymać użytkownika najnowszych stany UI, takie jak, która karta była widoczna, co jest w środku tej karcie itpjak dodać obiekt eventListener do obiektu w javascript, który będzie uruchamiany podczas manipulowania obiektem?
Na przykład:
var ui_states = {
tabs : [
{
name : "some tab",
active : true,
children : { ... }
},
{
name : "some other tab",
children : { ... }
}
]
}
Utrzymuję to na html5 localStorage
, a gdy użytkownik odświeży stronę, ponownie otworzy stronę. I za każdym razem, gdy interfejs użytkownika zmienia ten obiekt, zmienia się odpowiednio. I zaraz po zmianie muszę uruchomić, powiedzmy, updateLocalStorage()
, który działa idealnie.
Moje pytanie dotyczy tego przepływu, czy mogę utworzyć niestandardowe zdarzenie do mojego obiektu ui_states
coś podobnego do ui_states.addEventListener('onchange', function(){ // do stuff })
, aby nie uruchamiać tej funkcji updateLocalStorage()
za każdym razem, gdy manipuluję obiektem?
Dzięki.
Nie zgadzam się. Zdarzenia absolutnie nie są wyłącznie DOM. Ale koncepcja luźnego łączenia komponentów, które mogą być implementowane również w "Dom-Less" -JS. –
Tak, prawdopodobnie miesza te dwa pojęcia, ale tak, niektóre czyste obiekty javascript obsługują zdarzenia takie jak XMLHTTPRequest, RTCConnection, Worker, WebSocket ... Aby uzupełnić mój komentarz, obiekt Object nie obsługuje zdarzeń z wyjątkiem (ostatnio) z Object.observe (tylko dla Chrome jeszcze). – Jordan
OK, kiedy opublikowałem tę odpowiedź, wydarzenia rzeczywiście dotyczyły tylko obiektów DOM. Od tego czasu sprawy oczywiście posunęły się naprzód. – staticsan