Una vez que haya disparado evt.preventDefault()
, ¿cómo puedo reanudar las acciones predeterminadas nuevamente?
javascript
jquery
preventdefault
Bryan
fuente
fuente
Respuestas:
Según lo comentado por @Prescott, lo contrario de:
Podría ser:
Esencialmente equivale a 'hacer predeterminado' , ya que ya no lo estamos evitando.
De lo contrario, me inclino a señalar las respuestas proporcionadas por otros comentarios y respuestas:
¿Cómo desvincular un escucha que está llamando a event.preventDefault () (usando jQuery)?
¿Cómo volver a habilitar event.preventDefault?
Tenga en cuenta que el segundo ha sido aceptado con una solución de ejemplo, dada por redsquare (publicado aquí para una solución directa en caso de que esto no se cierre como duplicado):
fuente
y su opuesto
¡salud!
fuente
return true
: nada.Para procesar un comando antes de continuar un enlace desde un
click
evento en jQuery:P.ej:
<a href="http://google.com/" class="myevent">Click me</a>
Prevenir y seguir con jQuery:
O simplemente correr
window.location = this.href;
tras elpreventDefault();
fuente
Tuve que retrasar el envío de un formulario en jQuery para ejecutar una llamada asincrónica. Aquí está el código simplificado ...
fuente
OKAY ! funciona para el evento click:
fuente
y su opuesto (estándar):
fuente: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
fuente
Sugeriría el siguiente patrón:
... a menos que me falte algo.
http://jsfiddle.net/DdvcX/
fuente
No hay un método opuesto
event.preventDefault()
para entender por qué primero tienes que mirar quéevent.preventDefault()
hace cuando lo llamas.Debajo del capó, la funcionalidad para preventDefault es esencialmente llamar a un retorno falso que detiene cualquier ejecución posterior. Si está familiarizado con las viejas formas de Javascript, alguna vez estuvo de moda usar return false para cancelar eventos en cosas como envíos de formularios y botones usando return true (incluso antes de que jQuery existiera).
Como probablemente ya haya trabajado en base a la explicación simple anterior: lo contrario de
event.preventDefault()
es nada. Simplemente no evita el evento, de forma predeterminada el navegador lo permitirá si no lo está evitando.Vea a continuación una explicación:
En el código anterior, notará que estamos verificando si allowSubmit es falso. Esto significa que
event.preventDefault
evitaremos que nuestro formulario se envíe usando y luego haremos alguna lógica de validación y, si estamos contentos, establezca allowSubmit en verdadero.Este es realmente el único método efectivo para hacer lo contrario
event.preventDefault()
: también puede intentar eliminar eventos que esencialmente lograrían lo mismo.fuente
Aquí hay algo útil ...
En primer lugar, haremos clic en el enlace, ejecutaremos un código y luego realizaremos una acción predeterminada. Esto será posible usando event.currentTarget Echa un vistazo. Aquí intentaremos acceder a Google en una nueva pestaña, pero antes de que necesitemos ejecutar algún código.
fuente
Esto es lo que solía configurarlo:
Y para deshacerlo:
fuente
Ninguna de las soluciones me ayudó aquí e hice esto para resolver mi situación.
Y la función
clickEvent()
,fuente
Supongo que lo "opuesto" sería simular un evento. Podrías usar
.createEvent()
Siguiendo el ejemplo de Mozilla:
Ref: document.createEvent
jQuery tiene
.trigger()
para que pueda desencadenar eventos en elementos, a veces útiles.fuente
jquery on () podría ser otra solución para esto. especialmente cuando se trata del uso de espacios de nombres .
jquery on () es solo la forma actual de vincular eventos (en lugar de bind ()). off () es desvincular estos. y cuando usa un espacio de nombres, puede agregar y eliminar múltiples eventos diferentes.
ahora con el uso del espacio de nombres, puede agregar varios de estos eventos y puede eliminarlos, según sus necesidades.
fuente
Esta no es una respuesta directa a la pregunta, pero puede ayudar a alguien. Mi punto es que solo llama a preventDefault () en función de algunas condiciones, ya que no tiene sentido tener un evento si llama a preventDefault () para todos los casos. Por lo tanto, tener condiciones if y llamar a preventDefault () solo cuando se cumplan las condiciones funcionará la función de la manera habitual para los otros casos.
});
fuente
puede usar esto después del método "preventDefault"
// Aquí evt.target return evento predeterminado (por ejemplo: url defult, etc.)
// Aquí guardamos el evento predeterminado ...
fuente
Siempre puede usar esto adjunto a algún evento de clic en su script:
ejemplo de uso es:
fuente
este código me funcionó para volver a crear una instancia del evento después de haber usado:
fuente
He usado el siguiente código. Funciona bien para mí.
fuente
event.preventDefault()
;