Was ich haben will, ist ein benutzerdefiniertes Objekt, das einige Ereignisse zur Verfügung stellt. Zum Beispiel:Implementierung von Ereignissen in meinem eigenen Objekt
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);
}
}
Der Code um das Ereignis verwenden würde wie folgt aussehen:
myCustomObject = new CustomObject();
myCustomObject.addEventListener(CustomObjectTextChangedEventName, handleTextChanged, false);
Wie Sie ... die Standard Möglichkeit der Verwendung von Ereignissen in JS zu sehen. Aber ich kann es nicht worling machen ...
Derzeit ist mein Problem, dass mein Objekt nicht "addEventListener" und "dispatchEvent" implementieren. Aber diese Funktionen sind normalerweise von „Element“ implementiert ...
Kann ich sie irgendwie zugänglich zu machen oder muss ich sie für meine eigene implementieren? Wie muss ich sie umsetzen? Muss ich mein eigenes Eventhandling implementieren? (Eine interne Liste der Handler mit, ein „add“ - und „Entfernen“ -Handler Funktion und jeden Handler ausgelöst, wenn ich das Ereignis ausgelöst will)
Grüße!
I don t wissen, ob das hilft, aber Backbone.js Ereignisse in sie aufgebaut hat. Jedes mit ihm erstellte Modell kann benutzerdefinierte Ereignisse mit der Syntax 'object.trigger (event_name) 'auslösen. – Deeptechtons
Es ist auch einfach mit jQuery ... deshalb habe ich es gelernt, kann nicht so schwer sein: P $ (_ this) .trigger (CustomObjectTextChangedEventName , _text); $ (myCustomObject) .bind (CustomObjectTextChangedEventName, handleTextChanged); –