Heim > Web-Frontend > js-Tutorial > Hauptteil

Kapselt einen Javascript-Ereignis-Listener, der anonyme Funktionen_Javascript-Fähigkeiten unterstützt

WBOY
Freigeben: 2016-05-16 16:46:04
Original
1278 Leute haben es durchsucht

Jeder nutzt die Ereignisüberwachung in js häufig, um festzustellen, ob der Browser addEventListener und attachmentEvent unterstützt. Es gibt viele Methoden zur Ereignisüberwachung im Internet, aber einige davon sind nicht perfekt. Die folgende Methode ist für das Hinzufügen von Ereignis-Listenern dieselbe, außer dass einige Vorgänge beim Abbrechen der Ereignisbindung ausgeführt wurden. Jetzt kann die Verwendung anonymer Funktionen unterstützt werden, sodass beim Binden von Ereignissen keine separate Benennung der Funktion erforderlich ist.


Hauptcode:

Code kopieren Der Code lautet wie folgt:

/*Ereignisse binden und entbinden*/
var handleHash = {};
var bind = (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]);
}
};
};
}
})() ;

Prinzipanalyse:

handleHash fungiert als Hash-Tabellen-Cache-Ereignis. handleHash['event name'] ist ein Array zum Hinzufügen mehrerer Ereignis-Überwachungsmethoden. Durchlaufen Sie beim Aufheben der Bindung das Array von handleHash['event name'] und entfernen Sie es dann.

Verwendung:

Code kopieren Der Code lautet wie folgt:

bind (obj,'click',function(){
warning ('click');
});
unbind(obj,'click');
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage