ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのカスタムイベント

JavaScriptのカスタムイベント

高洛峰
高洛峰オリジナル
2016-11-16 11:22:351497ブラウズ

カスタム イベント: ユーザーはイベント タイプ (実際には文字列) を指定し、このタイプのイベントのイベント処理関数を指定できます。呼び出し時に、複数の Find からイベント処理関数を登録できます。イベント処理関数内でそれを呼び出してください。

function EventTarget(){
            this.handlers={};
        }
 
        EventTarget.prototype={
            constructor:EventTarget,
            addHandler:function(type,handler){
                if(typeof this.handlers[type]=='undefined'){
                    this.handlers[type]=new Array();
                }
                this.handlers[type].push(handler);
            },
            removeHandler:function(type,handler){
                if(this.handlers[type] instanceof Array){
                    var handlers=this.handlers[type];
                    for(var i=0,len=handlers.length;i<len;i++){
                        if(handler[i]==handler){
                            handlers.splice(i,1);
                            break;
                        }
                    }
                }
            },
            trigger:function(event){
                if(!event.target){
                    event.target=this;
                }
                if(this.handlers[event.type] instanceof Array){
                    var handlers=this.handlers[event.type];
                    for(var i=0,len=handlers.length;i<len;i++){
                        handlers[i](event);
                    }
                }
            }
        }

addHandler メソッドはイベント ハンドラーの追加に使用され、removeHandler メソッドはイベント ハンドラーの削除に使用されます。すべてのイベント ハンドラーは属性ハンドラーに格納および管理されます。イベントをトリガーするには、トリガー メソッドを呼び出します。このメソッドは、少なくとも type 属性を含むオブジェクトをパラメーターとして受け取ります。トリガーされると、handlers 属性の type に対応するイベント ハンドラーを検索します。コードを書いてテストします。

りー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。