Я хочу иметь пользовательский объект, который предоставляет некоторые события. Например:
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);
}
}
Код для использования события будет выглядеть так:
myCustomObject = new CustomObject();
myCustomObject.addEventListener(CustomObjectTextChangedEventName, handleTextChanged, false);
Как видите... способ использования событий по умолчанию в JS. Но я не могу заставить его работать...
В настоящее время моя проблема в том, что мой объект не реализует "addEventListener" и "dispatchEvent". Но эти функции обычно реализуются из "элемента"...
Могу ли я как-то сделать их доступными или мне нужно реализовать их самостоятельно? Как я должен их реализовать? Должен ли я реализовать свою собственную обработку событий? (имея внутренний список обработчиков, функции обработчика «добавить» и «удалить» и запустить каждый обработчик, когда я хочу запустить событие)
Приветствую!