Encapsule el controlador de eventos DOM Nivel 0 y el controlador de eventos DOM2 Level IE Handler en objetos EventUtil para lograr el efecto de navegador cruzado. El código es el siguiente:
var eventUtil = {// agregar el mango de eventos addEventHandler: function (elemento, type, handler) {if (element.adDeventListener) {element.adDeventListener (type, handler, false);} else if (element.attachevent) {element.attachevent ("en"+type, handler);} else {elemento ["en"+type " Event Handle RemoVentHandLer: function (elemento, type, handler) {if (element.removeVentListener) {element.removeEventListener (type, handler, false);} else if (element.detachevent) {element.detachevent ("en"+type, handler);} else {"on"+type] = null;}}}, /// gana de eventos); getEvent: function (event) {return Event? Event: Window.event;}, // Obtener el tipo de evento getType: function (event) {return Event.type;}, // Obtener el objetivo de eventos de eventos getTarget: function (event) {if (event.target) {return.target;} else {return.srcleement;}, // ////////bet getget (evento) {if (event.target) {return Event.target;} else {return Event.sricleement;}}, // Obtener el objetivo del objeto de evento getTarget: function (event) {if (event.target) {return Event.target;} else {return.srcelement;}}, // stop Event bubble stoppropagation: Function (event) {return (event.stoppropagation) {event.stopPropagation ();} else {event.cancelBubble = true;}}, // Prevenir el comportamiento predeterminado de eventos prevenedefault: function (event) {if (event.preventDefault) {event.preventDefault ();} else {event.rupurnvalue = false;}}}}}}Mientras practicaba el código, cometí varios errores, lo que causó el error de operación. Grabarlo y profundizar mi memoria.
① Agregar un mango es la ubicación donde se ofusca el parámetro: primero, los parámetros de AddEventHandler (Elemento, Tipo, Handler) que representan respectivamente qué elemento se agrega al evento, el tipo de evento y el controlador de funciones de manejo de eventos. Usted es propenso a confundir las posiciones de controlador y falso (que representa la etapa burbujeante) en el addEventLister posterior (tipo, controlador, falso).
Llevando al resultado: durante el proceso de escritura, pensé cuidadosamente en ello y entendí qué parámetros necesarios por AddEventHandler, y luego supe qué parámetro usar en qué posición. Finalmente, lo escribí correctamente y no causó un error.
Solución: Comprenda y recuerde.
② En la rama del juicio del controlador de eventos IE, el colegio adjunto y el separador se escriben incorrectamente, y falta el evento, y solo se escribe o se separa.
Causa el resultado: aunque no hay error, es imposible agregar o eliminar eventos en IE usando AddEventHandler y RemoLEventHandler.
Solución: solo practica más y recuerda. Adjunta de eventos y desprendimiento.
③ Olvidé agregar "ON" a los parámetros del controlador de eventos IE AttachEvent and DeCachevent; Está escrito como AttachEvent (tipo, controlador). De hecho, el correcto debe ser adjunta ("en"+tipo, controlador), y también olvidé que hay una rama de juicio para el procesamiento de eventos de nivel DOM0.
Resultado de las causas: de manera similar, el procesamiento de eventos de IE no es compatible. Agregar o eliminar eventos utilizando métodos encapsulados en IE no puede tener éxito.
Solución: solo recuerda. Otra cosa a tener en cuenta: el elemento ["en"+tipo] se usa en eventos de nivel DOM0. Por ejemplo, el elemento ["en"+"hacer clic" es equivalente a element.onclick.
④ El último atributo también se agrega con una coma al final, como el comportamiento predeterminado de PreventDefault al bloquear el evento: agregue una coma después de la finalización, como el siguiente fragmento de código (comentario)
prevenDefault: function (event) {if (event.preventDefault) {event.preventDefault ();} else {event.returnValue = false;}}, // La última propiedad se agrega con una coma después de completar, se producirá un error}Causa el resultado: se informó un error cuando se ejecutó en IE (donde la línea 54 de Event.js es la siguiente línea de la última coma, que en realidad es causada por una coma; se llama a la línea 10 de test.html porque el método eventutil.addeventhandler en event.js se llama)
Solución: Sin duda, solo elimina la última coma.
⑤ Sigue siendo un error de ortografía. La propiedad CancelBubble en IE que evita que los eventos de Bubbled Up se haya escrito con una S más, que se escribe como CancelBubbles.
Resultado: no se informó ningún error, pero los eventos en IE no se pueden evitar burbujear.
Solución: Cambiarlo de vuelta
Lo anterior es el problema de error de bajo nivel que JavaScript encapsula el controlador de eventos DOM en event.js introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!