イベント発火のパターン
$(function(){ var HOGE_EVENTS = ['click', 'mouseup']; var Hoge = function(){ this.events = {}; for(var i=0;i<HOGE_EVENTS.length;i++) this.events[HOGE_EVENTS[i]] = []; }; Hoge.prototype.on = function(ev, callback){ if(ev in this.events) this.events[ev].push(callback); }; Hoge.prototype.fire = function(ev){ if(false == (ev in this.events) || this.events[ev].length < 1)) return; $.each(this.events[ev], function(index, callback){ callback(); }); }; });