Quello che voglio è un oggetto personalizzato che fornisce alcuni eventi. Per esempio:Implementazione di eventi nel mio oggetto
var CustomObjectTextChangedEventName = 'textChanged';
var CustomObject = function() {
var _this = this;
var _text = "";
_this.OnTextChanged = document.createEvent("Event");
_this.OnTextChanged.initEvent(CustomObjectTextChangedEventName, true, false);
_this.ChangeText = function (newText) {
_text = newText;
fireTextChanged();
};
function fireTextChanged() {
_this.dispatchEvent(_this.OnTextChanged);
}
}
Il codice per utilizzare l'evento sarà simile:
myCustomObject = new CustomObject();
myCustomObject.addEventListener(CustomObjectTextChangedEventName, handleTextChanged, false);
Come si può vedere ... il modo di default di utilizzare gli eventi in JS. Ma non posso renderlo preoccupante ...
Attualmente il mio problema è che il mio oggetto non implementa "addEventListener" e "dispatchEvent". Ma queste funzioni sono normalmente implementate da "elemento" ...
Posso renderle disponibili in qualche modo o devo implementarle per conto mio? Come devo implementarli? Devo implementare il mio eventhandling? (avendo un elenco interno di gestori, una funzione "aggiungi" e "rimuovi" -handler e licenzia ogni gestore quando voglio attivare l'evento)
Saluti!
I don; so se questo aiuta, ma Backbone.js ha eventi costruite al loro interno. Ogni modello creato utilizzandolo può attivare eventi personalizzati usando la sintassi 'object.trigger (event_name)' – Deeptechtons
È anche facile con jQuery ... ecco perché ho pensato che non fosse così difficile: P $ (_ this) .trigger (CustomObjectTextChangedEventName , _testo); $ (myCustomObject) .bind (CustomObjectTextChangedEventName, handleTextChanged); –