これは機能しますが、(読みやすさとパフォーマンスの観点から) 専用のイベント ライブラリを使用することをお勧めします。それをしたくない場合は、これがより適切な方法です。
jQuery では、オブジェクトとしてメモリ内に存在するdocumentFragmentsを作成できます。これはページに追加されず、返された値 (ここでは に格納されていますwindow.events
) を使用してのみイベントをトリガーできます。
window.events = $('<div>');
events.on('changeSettings',function(e,param1){
// do something
});
events.trigger('changeSettings', ['value']);
イベントのみを行うradio.jsを使用した例を次に示します。
radio('changeSettings').subscribe(function(data1, data2) {
//do something with data1 and data2
});
radio('changeSettings').broadcast(data1, data2);
このようなことを行うこともできます。これにより、リファクタリングと縮小が可能になります。
var events = {changeSettings: radio('changeSettings')};
events.changeSettings.subscribe(function(data1, data2) {
//do something with data1 and data2
});
events.changeSettings.broadcast(data1, data2);