Tengo enlaces como este:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
Y me gustaría hacer un preventDefault()
inside myfunc()
, porque #
se agregará un en la barra de direcciones al hacer clic en el enlace (sin hacer return false;
o href='javascript:void(0);'
)
es posible? ¿Puedo llevar el evento adentro?myfunc()
javascript
jquery
html
Omu
fuente
fuente
return false
solo detiene la propagación dentro de jQuery.Respuestas:
Creo que puede pasar
event
a la función en línea, que será elevent
objeto para el evento generado en los navegadores compatibles con W3C (es decir, las versiones anteriores de IE aún requerirán detección dentro de su función de controlador de eventos para verwindow.event
).Un ejemplo rápido .
event
paso alonclick
controlador a algo más comoe
, haga clic en ejecutar, luego observe que la redirección tiene lugar después de la alerta (el panel de resultados se vuelve blanco, lo que demuestra una redirección).fuente
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
entonces se puede llamar comomyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
La solución más simple simplemente es:
En realidad, es una buena manera de realizar la destrucción de caché para documentos con un respaldo para navegadores sin JS habilitado (sin prevención de caché si no hay JS)
Si JavaScript está habilitado, abre el PDF con una cadena de consulta de eliminación de caché, si no, simplemente abre el PDF.
fuente
Prueba esto:
fuente
$("body").on("click","a",function(e) { e.preventDefault() });
. En cualquier caso, ninguna de las soluciones tendrá un impacto significativo en el rendimiento.fuente
return false
no se recomienda, ya que también evitará que se ejecuten todos los demás controladores de eventos en ese elemento y evitará que el evento se propague a elementos superiores.Agregue una clase única a los enlaces y un javascript que evite el defecto en los enlaces con esta clase:
fuente
¿No puede simplemente eliminar el atributo href de la etiqueta a?
fuente
Creo que cuando usamos onClick queremos hacer algo diferente a lo predeterminado. Entonces, para todos sus enlaces con onClick:
fuente
¡Sencillo!
fuente
Puede acceder al evento desde un clic así:
y en su función de javascript, mi consejo es agregar esa declaración de primera línea como:
luego use en todas partes e como variable de evento
fuente
e.preventDefault (); de https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
O devuelva falso de su método.
fuente
Sin ninguna biblioteca JS o jQuery. Para abrir una bonita ventana emergente si es posible. Falla de forma segura al enlace normal abierto.
Y la función de ayudante:
fuente