Agregue o elimine los eventos en el navegador IE con AttachEvent y separar. En otros navegadores estándar, se utilizan AddEventListener y RemoLEventListener. Lo siguiente encapsula la adición y eliminación de eventos. ¡Solo mira el código!
/*** @Description Binking, compatible con navegadores* @param Target* Event Trigger Object* @param Type* Event* @param func* Event Handler Function*/function bind (target, type, func) {if (target.AdDeventListener) {// no IEI y iE9Target.addeventListener (type, type, fsese);} más if (}) IE6 a ie8Target.attachevent ("on" + type, func);} else {target ["en" + type] = func; // ie5}}/*** @Description Eliminación del evento, compatible con cada navegador* @param Target* Event Trigger Object* @param type* event* @param func* Function de controlador de eventos*/function sinbind (target, type, func) {if (target.removeVentListener) {target.removeVentListener (type, type, False);};});} {Target.DetacheVent ("On" + Type, func);} else {Target ["on" + type] = null;}}Otros suplementos sobre el significado del tercer parámetro de AddEventListener
El tercer parámetro de addEventListener
La función utilizada para agregar un evento de activación en W3C DOM se llama addEventListener. Sin embargo, nunca he sabido para qué se debe utilizar el tercer parámetro de esta función. Siempre lo configuré casualmente y no encontré ninguna diferencia. Finalmente vi la explicación cuando leí PPK en JavaScript hace dos días. En cuanto a los archivos DOM estándar que se encontraron hace mucho tiempo, en realidad nunca busqué información sobre este parámetro.
Este parámetro se llama useCapture, que es un valor booleano, que es verdadero o falso. Si se envía verdadero, el navegador usará el método de captura. Si es falso, es burbujeante, que solo tendrá un impacto en situaciones específicas. Por lo general, se recomienda ser falso. La situación en la que habrá un impacto es que el elemento objetivo tiene un elemento ancestro y la misma función de correspondencia de eventos. Creo que será más claro ver la imagen.
El ejemplo tiene dos capas de bloques de div.
Como se muestra en esta imagen, mi ejemplo tiene dos capas de elementos DIV, y ambos establecen un evento de clic. En términos generales, si hago clic en el elemento azul interno, no solo activará el evento de clic del elemento azul, sino que también activará el evento de clic del elemento rojo al mismo tiempo. El parámetro USECapture es controlar el orden de los dos eventos de clic en este momento. Si es falso, se utilizará burbujas. Es un proceso desde adentro hacia afuera, por lo que el evento de clic del elemento azul se ejecutará primero y luego el evento de clic del elemento rojo. Si es cierto, entonces es captura. Por el contrario, el burbujeo será desde el exterior hasta el interior. El evento de clic del elemento rojo se ejecutará primero antes de que se ejecutará el evento de clic del elemento azul. Se adjuntan dos ejemplos, captura y bubbleng. Los dos archivos son solo diferentes en este parámetro, por lo que puede encontrar que la secuencia de eventos ocurre es diferente.
¿Qué pasa si el Usecapture utilizado por elementos de diferentes capas es diferente? Significa que desde el elemento más externo, primero buscará eventos establecidos como captura para el elemento de destino, y después de alcanzar el elemento de destino para ejecutar el evento del elemento de destino, luego busque eventos establecidos como burbuja.