ホームページ > ウェブフロントエンド > jsチュートリアル > 匿名関数をサポートする Javascript イベント リスナーをカプセル化します_JavaScript スキル

匿名関数をサポートする Javascript イベント リスナーをカプセル化します_JavaScript スキル

WBOY
リリース: 2016-05-16 16:46:04
オリジナル
1303 人が閲覧しました

ブラウザーが addEventListener とattachEvent をサポートしているかどうかを判断するためだけに、誰もが JS でイベント監視を頻繁に使用します。以下のメソッドはイベント リスナーを追加する場合と同じですが、イベント バインディングのキャンセル時に一部の操作が実行されるため、イベントをバインドするときに関数に別の名前を付ける必要がなくなりました。


メインコード:

コードをコピー コードは次のとおりです:

/*イベントのバインドとバインド解除*/
var handleHash = {};
var binding = (function() {
if (window.addEventListener) {
return function( el, type, fn, Capture) {
el.addEventListener(type, function(){
fn();
handleHash[type] = handleHash[type] || [];
handleHash [type].push(arguments.callee);
}, Capture);
};
} else if (window.attachEvent) {
return function(el, type, fn, Capture) {
el.attachEvent("on" type, function(){
fn();
handleHash[type] = handleHash[type] || [];
handleHash[type].push (arguments.callee);
});
};
}
})();
var unbind = (function(){
if (window.addEventListener) {
return function(el, type) {
if(handleHash[type]){
var i = 0, len = handleHash[type].length;
for (i; i el.removeEventListener(type, handleHash[type][i]);
}
};
};
} else if (window.attachEvent) {
return function(el, type) {
if(handleHash[type]){
var i = 0, len = handleHash[type].length;
for (i; i el.detachEvent("on" type, handleHash[type][i]);
}
};
};
}
})() ;

原理分析:

handleHash はハッシュ テーブル キャッシュ イベントとして機能します。 handleHash['イベント名'] は、イベントをアンバインドするときに複数のイベント リスニング メソッドを追加するための配列です。

使用:

コードをコピー コードは次のとおりです:

bind (obj,'click',function(){
アラート ('click');
});
unbind(obj,'click');
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート