Me está costando entender cómo simular un clic del mouse usando JQuery. ¿Alguien puede informarme sobre lo que estoy haciendo mal?
HTML:
<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
jQuery:
jQuery('#foo').on('click', function(){
jQuery('#bar').trigger('click');
});
Demostración: FIDDLE
cuando hago clic en el botón #foo quiero simular un clic en #bar sin embargo, cuando intento esto, no sucede nada. También lo intenté jQuery(document).ready(function(){...})
pero sin éxito.
javascript
jquery
html
triggers
eventtrigger
lickmycode
fuente
fuente
jQuery trigger
solo funciona si se agrega cualquier evento 'jQuery click`. De lo contrario, no podrá hacer nada de esta manera;Respuestas:
Debe usar
jQuery('#bar')[0].click();
para simular un clic del mouse sobre el elemento DOM real (no el objeto jQuery), en lugar de usar el.trigger()
método jQuery.Nota: DOM Nivel 2
.click()
no funciona en algunos elementos en Safari . Deberá usar una solución alternativa.http://api.jquery.com/click/
fuente
Solo necesita poner un pequeño evento de tiempo de espera antes de hacer
.click()
esto:fuente
Este es el comportamiento de JQuery. No estoy seguro de por qué funciona de esta manera, solo activa la función onClick en el enlace.
Tratar:
fuente
trigger()
está destinado a ejecutar la parte de JavaScript del evento de clic . Es muy similar a crear unafunction var() {}
que se reutilice varias veces.Ver mi demo: http://jsfiddle.net/8AVau/1/
fuente
this.click();
en unelse if(this.click)
Puede ser útil:
El código que llama a Trigger debe ir después de que se llama al evento.
Por ejemplo, tengo un código que quiero ejecutar cuando se cambia el valor de #expense_tickets y también cuando se vuelve a cargar la página
fuente
trigger()
no funcionaba. Resulta que tenía el código de activación establecido POR ENCIMA de la función que estaba llamando, por lo que el gancho no estaba realmente en su lugar. Doh!jQuery
.trigger('click');
solo hará que se active un evento en este evento, no activará también la acción predeterminada del navegador.Puede simular la misma funcionalidad con el siguiente JavaScript:
fuente
Prueba esto que funciona para mí:
fuente
He intentado las dos respuestas principales, no funcionó para mí hasta que eliminé "display: none" de los elementos de entrada de mi archivo. Luego volví a .trigger () también funcionó en safari para windows.
Por lo tanto, no utilice display: none; para ocultar su entrada de archivo , puede usar opacidad: 0 en su lugar.
fuente
Técnicamente no es una respuesta a esto, pero es un buen uso de la respuesta aceptada ( https://stackoverflow.com/a/20928975/82028 ) para crear botones siguiente y anterior para las pestañas en los campos de jQuery ACF:
fuente
Solo usa esto:
fuente
No puede simular un evento de clic con javascript. La
.trigger()
función jQuery solo dispara un evento llamado "clic" en el elemento, que puede capturar con el.on()
método jQuery.fuente