As pessoas usam mais sobre o monitoramento de eventos no JS, mas nada mais do que julgar se o navegador suporta AddEventListener e AnextEvent. Existem muitas maneiras de procurar monitoramento de eventos on -line, mas algumas não são muito perfeitas. O método a seguir é o mesmo para adicionar a escuta de eventos, exceto que algumas cirurgias foram realizadas no cancelamento da ligação de eventos, e o uso de funções anônimas agora pode ser suportado; portanto, ao vincular eventos, não precisam mais nomear a função separadamente.
Código principal:
A cópia do código é a seguinte:
/*Eventos de ligação e desbaste*/
var handleHash = {};
var bind = (function () {
if (window.addeventListener) {
Função de retorno (el, tipo, fn, captura) {
el.addeventListener (tipo, function () {
fn ();
HandleHash [tipo] = HandleHash [Type] || [];
handlehash [tipo] .push (argumentos.callee);
}, captura);
};
} else if (window.attachevent) {
Função de retorno (el, tipo, fn, captura) {
el.attachevent ("on" + tipo, function () {
fn ();
HandleHash [tipo] = HandleHash [Type] || [];
handlehash [tipo] .push (argumentos.callee);
});
};
}
}) ();
var despind = (function () {
if (window.addeventListener) {
Função de retorno (el, tipo) {
if (handlehash [type]) {
var i = 0, len = handleHash [tipo] .Length;
para (i; i <len; i += 1) {
el.removeEventListener (tipo, handlehash [tipo] [i]);
}
};
};
} else if (window.attachevent) {
Função de retorno (el, tipo) {
if (handlehash [type]) {
var i = 0, len = handleHash [tipo] .Length;
para (i; i <len; i += 1) {
el.detachevent ("on" + tipo, handlehash [tipo] [i]);
}
};
};
}
}) ();
Análise de princípios:
HandleHash faz a tabela de hash para cache a função dos eventos. HandleHash ['Nome do evento'] é uma matriz para adicionar vários métodos de escuta de eventos. Quando desbaste qual evento estiver desbotado, itera através da matriz de HandleHash ['Nome do evento'] e remova -o.
usar:
A cópia do código é a seguinte:
bind (obj, 'click', function () {
alerta ('clique');
});
desbloquear (obj, 'clique');