que tienen una estructura de interfaz de usuario complicada que se manipula de forma dinámica, y decir que tengo un objeto ui_state
donde guardo últimos estados de interfaz de usuario del usuario, tales como la ficha que era visible, lo que estaba dentro de esa pestaña, etc.cómo agregar un eventListener a un objeto en JavaScript que se activará cuando se manipule el objeto?
Por ejemplo:
var ui_states = {
tabs : [
{
name : "some tab",
active : true,
children : { ... }
},
{
name : "some other tab",
children : { ... }
}
]
}
Mantengo esto en html5 localStorage
y cuando el usuario actualiza el sitio, vuelve a abrir la página de la misma manera. Y cada vez que cambia la interfaz de usuario, este objeto cambia en consecuencia. Y justo después de cambiarlo necesito correr digamos updateLocalStorage()
, que está funcionando perfectamente.
Mi pregunta es para este flujo, puedo crear un evento personalizado a mi ui_states
objeto algo así como ui_states.addEventListener('onchange', function(){ // do stuff })
a no ejecutar esa función updateLocalStorage()
cada vez que puedo manipular el objeto?
Gracias.
No estoy de acuerdo. Los eventos no son en absoluto DOM. Pero un concepto para acoplar libremente los componentes que pueden implementarse en "Dom-Less" -JS también. –
Sí, probablemente esté mezclando estos dos conceptos, pero sí, algunos objetos javascript puros admiten eventos como XMLHTTPRequest, RTCConnection, Worker, WebSocket ... Para completar mi comentario, no el objeto Object no admite eventos excepto (recientemente) con Object.observe (solo para Chrome todavía). – Jordan
De acuerdo, cuando publiqué esa respuesta, los eventos solo estaban en objetos DOM. Las cosas han avanzado desde entonces, obviamente. – staticsan