he notado un comportamiento extraño de la función live()
en jQuery:jQuery en vivo ('clic') de disparo para haga clic con
<a href="#" id="normal">normal</a>
<a href="#" id="live">live</a>
$('#normal').click(clickHandler);
$('#live').live('click', clickHandler);
function clickHandler() {
alert("Clicked");
return false;
}
Eso es fino y elegante hasta que haga clic en el "en vivo" enlace y dispara el controlador, y luego no muestra el menú contextual. El controlador de eventos no se dispara en absoluto (como se esperaba) en el enlace "normal".
he sido capaz de evitar que al cambiar el controlador a esto:
function clickHandler(e) {
if (e.button != 0) return true;
// normal handler code here
return false;
}
Pero eso es muy molesto tener que añadir que a todos los controladores de eventos. ¿Hay alguna manera mejor de que los controladores de eventos solo se activen como los manejadores de clics normales?
¿Cómo se hace una pregunta en el futuro? – PetersenDidIt
Me entusiasmó ver su solución aquí, y probé esto rápidamente en mi propia aplicación, y aunque los enlaces en los que hago clic derecho ahora pueden ser capturados e ignorados, todavía no veo mi menú contextual en el botón derecho estas. Además, el clic de mi botón central del ratón (abrir en una nueva pestaña) tampoco funciona. ¡Pero, al menos el manejador puede regresar temprano! – Funka
En realidad, parece que si hago clic con el botón secundario en varias ocasiones, rápidamente, ocasionalmente puedo ver el menú contextual ... Hmmm. – Funka