react - jQuery: ¿Cómo uso event.preventDefault() con eventos personalizados?
preventdefault not working (4)
Los eventos personalizados no tienen algunas acciones predeterminadas que suceden ... (son personalizadas).
Por otro lado, si desea detener el efecto de burbujeo de este evento para los demás, eche un vistazo a triggerHandler
que no sube a la jerarquía.
¿Cómo puedo saber en mi código de activación que se ha invocado preventDefault
?
$(document).trigger(''customEvent'', params);
if (/* ??? */)
doDefaultActions();
Que yo sepa, la llamada "preventDefault ()" trata sobre la prevención de las respuestas del navegador nativo a cosas como clics en etiquetas de anclaje o pulsaciones de teclas en campos de texto. Una vez que el ciclo de manejo de eventos ha terminado, se termina. Para los eventos inventados, no creo que tenga ningún efecto, ya que se trata del sistema de procesamiento de eventos jQuery y no de la funcionalidad nativa del navegador.
Su código podría establecer algún tipo de bandera en algún lugar para comunicarse con el "mundo exterior".
[edit] ooh podrías intentar que el manejador oculte una referencia al objeto del evento en algún lugar que el código externo pueda encontrar, y luego verifica externamente con "isDefaultPrevented ()". No sé si eso funcionaría sin embargo.
Si está preguntando cómo saber si el valor predeterminado ha sido prevenido, use:
event.isDefaultPrevented()
Esto devolverá ''verdadero'' o ''falso'' en función de si se invocó preventDefault () o no.
trigger () también puede tomar un objeto de evento, por lo que si puede crear un objeto de evento, haga lo siguiente:
var event = jQuery.Event("customEvent");
$(document).trigger(event);
luego puede verificar después del disparador para ver si preventDefault () ha sido llamado así:
var prevented = event.isDefaultPrevented();