w3schools sirve que para false event desactivar javascript events javascript-events event-handling preventdefault

sirve - preventdefault javascript w3schools



event.preventDefault() vs. return false(no jQuery) (3)

Diferencia entre preventDefault, stopPropogation, return false

Acción predeterminada: acción del lado del servidor cuando se produce un evento de control.

Supongamos que tenemos control div y dentro de él tenemos un botón. Entonces, div es el control principal del botón. Tenemos el clic del lado del cliente y el evento de clic del lado del servidor del botón. También tenemos un evento de clic del lado del cliente del div.

Al hacer clic en el evento del botón en el lado del cliente, podemos controlar las acciones del control principal y el código del lado del servidor utilizando las siguientes tres maneras:

  • return false - Esto permite solo el evento del lado del cliente del control. El evento del lado del servidor y el evento del lado del cliente del control principal no se activan.

  • preventDefault() - Esto permite el evento de control del lado del cliente y su control principal. Servidor lado evento es decir. La acción predeterminada del control no se dispara.

  • stopPropogation() - Esto permite el lado del cliente así como el evento del lado del servidor del control. El evento del lado del cliente del control no está permitido.

Me preguntaba si event.preventDefault() y return false eran lo mismo.

He hecho algunas pruebas , y parece que

  • Si el controlador de eventos se agrega utilizando el modelo anterior, por ejemplo

    elem.onclick = function(){ return false; };

    Luego, return false evita la acción predeterminada, como event.preventDefault() .

  • Si el controlador de eventos se agrega usando addEventListener , por ejemplo

    elem.addEventListener( ''click'', function(e){ return false; }, false );

    Entonces, return false no evita la acción predeterminada.

¿Todos los navegadores se comportan así?

¿Hay más diferencias entre event.preventDefault() y return false ?

¿Dónde puedo encontrar algo de documentación (no pude en MDN) acerca de return false comportamiento return false como event.preventDefault() en algunos casos?

Mi pregunta es solo sobre JavaScript simple, no sobre jQuery, así que no lo marque como un duplicado de event.preventDefault () frente a return false , incluso si ambas preguntas tienen casi el mismo título.


La especificación de eventos del modelo de objetos de documento W3C en 1.3.1. Las interfaces de registro de eventos indican que handleEvent en el handleEvent no tiene valor de retorno:

handleEvent Se handleEvent este método cada vez que se produce un evento del tipo para el que se registró la interfaz EventListener. [...] Sin valor de retorno

bajo 1.2.4. Cancelación de evento el documento también establece que

La cancelación se realiza llamando al método preventDefault del evento. Si uno o más EventListeners llaman a preventDefault durante cualquier fase del flujo de eventos, la acción predeterminada se cancelará.

lo cual debería desalentarlo de usar cualquier efecto que devuelva verdadero / falso podría tener en cualquier navegador y usar event.preventDefault() .

Actualizar

La especificación de HTML5 en realidad especifica cómo tratar un valor de retorno diferente. La sección 6.1.5.1 de las especificaciones HTML establece que

Si el valor de retorno es un valor falso booleano de WebIDL, cancele el evento.

para todo menos el evento "mouseover".

Conclusión

Todavía recomendaría usar event.preventDefault() en la mayoría de los proyectos, ya que serás compatible con las especificaciones antiguas y, por lo tanto, con navegadores más antiguos. Solo si solo necesita admitir navegadores de vanguardia, devolver el falso para cancelar está bien.


return false es solo para IE, event.preventDefault() es compatible con Chrome, ff ... navegadores modernos