Ho una struttura di interfaccia utente complessa che viene gestito dinamicamente, e che ho un oggetto ui_state
dove mantengo ultime stati UI per l'uso come quale scheda era visibile, cosa conteneva quella scheda ecccome aggiungere un eventListener a un oggetto in javascript che si attiva quando l'oggetto viene manipolato?
Ad esempio:
var ui_states = {
tabs : [
{
name : "some tab",
active : true,
children : { ... }
},
{
name : "some other tab",
children : { ... }
}
]
}
Lo tengo su html5 localStorage
e quando l'utente aggiorna il sito riapre la pagina lo stesso. E ogni volta che l'interfaccia utente cambia questo oggetto viene modificato di conseguenza. E appena dopo averlo cambiato devo scappare diciamo updateLocalStorage()
che funziona perfettamente.
La mia domanda è per questo flusso, posso creare un evento personalizzato alla mia ui_states
oggetto qualcosa come ui_states.addEventListener('onchange', function(){ // do stuff })
per non correre quella funzione updateLocalStorage()
ogni volta quando ho manipolare l'oggetto?
Grazie.
Non sono d'accordo. Gli eventi non sono assolutamente solo DOM. Ma un concetto per unire liberamente componenti che possono essere implementati anche in "Dom-Less" -JS. –
Sì, probabilmente sta mixando questi due concetti ma sì, alcuni oggetti javascript puri supportano eventi come XMLHTTPRequest, RTCConnection, Worker, WebSocket ... Per completare il mio commento, nessun oggetto Oggetto non supporta eventi tranne (di recente) con Object.observe (solo per Chrome ancora). – Jordan
Ok, quando ho postato quella risposta, gli eventi erano effettivamente solo sugli oggetti DOM. Le cose sono andate avanti da allora, ovviamente. – staticsan