私はやや緑のプログラマーであり、javascript/jquery にはまったく慣れていませんが、javascript イベントを理解していると思っていました。どうやらそうではありません。イベントリスナーを思い通りに動作させることができません。
指定されたJavaScript:
var Thing = {
//stuff
update: function() {
$.event.trigger({type:'stateUpdate', more:stuff});
}
};
var Room = {
//more stuff
updateHandler: function (e) {
//handle event here
}
};
私がjqueryを行う場合:
$(document).on('stateUpdate', $Room.updateHandler);
それはうまくいきますが、どちらもできません
$(Room).on('stateUpdate', $Room.updateHandler);
また
Room.addEventListerner('stateUpdate', $Room.updateHandler);
1 つ目は何もしませんが、2 つ目は .addEventListerner は関数エラーではありません。
何時間もグーグルで検索しましたが、わかりません。.addEventListener は、EventListener を実装するオブジェクト、handleEvent に関する何か、および EventListener を自動的に実装する関数に関する何かでのみ機能するということを見つけました。オブジェクトにそれを実装させる方法については何もありません。関数ではない JavaScript オブジェクトにリスナーを追加する方法はありませんか? イベント ハンドラ オブジェクトを作成するか、「ドキュメント」または「ウィンドウ」を使用してハンドラを呼び出す必要がありますか? それは本当に醜いようです。
そもそもオブジェクトは関数であるべきですか? それはうまくいくでしょうか?現在の意見では、すべてを機能させることは、javascriptをそうでないものにしようとしているだけです。