Estamos trabajando en una herramienta JavaScript que tiene un código anterior, , por lo que no podemos volver a escribir la herramienta completa.¿Cómo manejo un clic en algún lugar de la página, incluso cuando un elemento determinado detiene la propagación?
Ahora, se agregó un menú de posición fija en la parte inferior y al cliente le gustaría tener un botón para abrir y cerrar el menú, , excepto que el cierre debe realizarse automáticamente cuando un usuario comienza a hacer cosas del menú, por ejemplo, cuando un usuario vuelve a la página y selecciona algo o hace clic en un campo de formulario.
Esto podría funcionar técnicamente con un evento click
en el body
, lo que provocó en cualquier clic, sin embargo hay numerosos artículos en el código antiguo, donde un evento de clic se manejó en un enlace interno, y return false
se añadió al clic función, para que el sitio no continúe con la etiqueta href
del enlace.
Así que, claramente, una función general como esta funciona, pero no cuando se hace clic en un enlace interno donde el retorno falso detiene la propagación.
$('body').click(function(){
console.log('clicked');
});
¿Hay alguna manera de forzar el acontecimiento de cuerpo clic en cualquier caso, o hay otra manera de que pueda dejar que el dissappear menú, utilizando algún evento click global o algo similar?
Sin tener que volver a escribir todos los demás clics en la aplicación que se crearon hace años. Eso sería una tarea monstruosa, especialmente porque no tengo ni idea de cómo los reescribiría, sin la devolución falsa, pero aún así no los dejo ir a su href
.
Para cualquiera que se pregunte si puede usar esto, aquí está la página de caniuse: http://caniuse.com/#feat=addeventlistener la respuesta corta es sí, siempre y cuando no le importe IE8 –