La gente usa más sobre el monitoreo de eventos en JS, pero no es más que juzgar si el navegador admite AddEventListener y AttachEvent. Hay muchas formas de buscar el monitoreo de eventos en línea, pero algunas no son muy perfectas. El siguiente método es el mismo para agregar la escucha de eventos, excepto que se realizó una cirugía al cancelar la unión del evento, y el uso de funciones anónimas ahora puede ser compatible, por lo que cuando los eventos vinculantes ya no necesitan nombrar la función por separado.
Código principal:
La copia del código es la siguiente:
/*Eventos vinculantes y desapercibir*/
var handleHash = {};
var bind = (function () {
if (window.addeventListener) {
Función de retorno (El, type, fn, captura) {
el.addeventListener (type, function () {
fn ();
HandleHash [type] = HandleHash [type] || [];
HandleHash [type] .push (argumentos.callee);
}, captura);
};
} else if (window.attachevent) {
Función de retorno (El, type, fn, captura) {
el.attachevent ("on" + type, function () {
fn ();
HandleHash [type] = HandleHash [type] || [];
HandleHash [type] .push (argumentos.callee);
});
};
}
}) ();
var sinbind = (function () {
if (window.addeventListener) {
Función de retorno (El, tipo) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
para (i; i <len; i += 1) {
el.removeEventListener (tipo, handlehash [type] [i]);
}
};
};
} else if (window.attachevent) {
Función de retorno (El, tipo) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
para (i; i <len; i += 1) {
el.detachevent ("on" + type, handlehash [type] [i]);
}
};
};
}
}) ();
Análisis principal:
Handlehash hace la tabla hash para almacenar en caché la función de los eventos. Handlehash ['Nombre del evento'] es una matriz para agregar múltiples métodos de escucha de eventos. Cuando desbasque qué evento no se desvanea, itera a través de la matriz de Handlehash ['Nombre del evento'] y luego retírelo.
usar:
La copia del código es la siguiente:
bind (obj, 'hacer clic', function () {
alerta ('hacer clic');
});
desarchar (obj, 'hacer clic');