私が欲しいのは、いくつかのイベントを提供するカスタムオブジェクトです。例えば:
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
、この関数は通常、「要素」から実装されています。
どういうわけかそれらを利用可能にすることはできますか、それとも自分でそれらを実装する必要がありますか?それらをどのように実装する必要がありますか?
独自のイベント処理を実装する必要がありますか?(ハンドラーの内部リスト、「追加」および「削除」ハンドラー関数があり、イベントを発生させたいときに各ハンドラーを発生させます)?