trigger evento div disparar agregar jquery return jquery-events

evento - on click jquery



devuelve falso del evento jQuery click (3)

Tengo eventos de clic configurados así:

$(''.dialogLink'') .click(function () { dialog(this); return false; });

Todos tienen un "retorno falso"

¿Alguien puede explicar lo que hace y si es necesario?


Cuando devuelve false de un controlador de eventos, evita la acción predeterminada para ese evento y detiene el evento que burbujea a través del DOM. Es decir, es el equivalente de hacer esto:

$(''.dialogLink'') .click(function (event) { dialog(this); event.preventDefault(); event.stopPropagation(); });

Si ''.dialogLink'' es un elemento <a> , su acción predeterminada al hacer clic es navegar a href . Devolver false desde el controlador de clics lo impide.

En cuanto a si es necesario en su caso, supongo que la respuesta es sí porque desea mostrar un cuadro de diálogo en respuesta al clic en lugar de navegar. Si el elemento en el que ha activado el controlador de clics no tiene una acción predeterminada al hacer clic (p. Ej., Normalmente no ocurre nada al hacer clic en un div), no es necesario que devuelva falso porque no hay nada que cancelar.

Si desea hacer algo en respuesta al clic pero permite que la navegación predeterminada continúe, no devuelva falso.

Otras lecturas:


El valor de retorno de un controlador de eventos determina si el comportamiento predeterminado del navegador debería o no tener lugar. En el caso de hacer clic en enlaces, esto estaría siguiendo el enlace, pero la diferencia es más notable en los controladores de envío de formularios, donde puede cancelar el envío de un formulario si el usuario ha cometido un error al ingresar la información.


El valor de retorno de un controlador de eventos determina si el comportamiento predeterminado del navegador debería o no tener lugar. En el caso de hacer clic en enlaces, esto estaría siguiendo el enlace, pero la diferencia es más notable en los controladores de envío de formularios, donde puede cancelar el envío de un formulario si el usuario ha cometido un error al ingresar la información.

No creo que haya una especificación W3C para esto. Todas las antiguas interfaces de JavaScript como esta han recibido el sobrenombre "DOM 0", y en su mayoría no están especificadas. Puede tener algo de suerte leyendo la documentación anterior de Netscape 2.

La forma moderna de lograr este efecto es llamar a event.preventDefault() , y esto se especifica en la especificación de eventos DOM 2 .

Entonces, el camino correcto sería:

$(''.dialogLink'') .click(function (e) { dialog(this); e.preventDefault(); e.stopPropagation(); // Stop bubbling up });