J'ai du mal à comprendre comment simuler un clic de souris en utilisant JQuery. Quelqu'un peut-il s'il vous plaît m'informer de ce que je fais 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');
});
Démo: FIDDLE
quand je clique sur le bouton #foo je veux simuler un clic sur #bar mais quand j'essaye cela, rien ne se passe. J'ai aussi essayé jQuery(document).ready(function(){...})
mais sans succès.
javascript
jquery
html
triggers
eventtrigger
lickmycode
la source
la source
jQuery trigger
ne fonctionne que si un événement «jQuery click» est ajouté. Sinon, vous ne pourrez rien faire de cette manière;Réponses:
Vous devez utiliser
jQuery('#bar')[0].click();
pour simuler un clic de souris sur l'élément DOM réel (pas l'objet jQuery), au lieu d'utiliser la.trigger()
méthode jQuery.Remarque: DOM niveau 2
.click()
ne fonctionne pas sur certains éléments de Safari . Vous devrez utiliser une solution de contournement.http://api.jquery.com/click/
la source
Vous avez juste besoin de mettre un petit événement de timeout avant de faire
.click()
comme ceci:la source
C'est le comportement de JQuery. Je ne sais pas pourquoi cela fonctionne de cette façon, cela ne déclenche que la fonction onClick sur le lien.
Essayer:
la source
trigger()
est destiné à exécuter la partie JavaScript de l' événement de clic . C'est très similaire à la création d'un qui estfunction var() {}
réutilisé plusieurs fois.Voir ma démo: http://jsfiddle.net/8AVau/1/
la source
this.click();
dans unelse if(this.click)
Peut être utile:
Le code qui appelle le déclencheur doit aller après l'appel de l'événement.
Par exemple, j'ai du code que je souhaite exécuter lorsque la valeur de #expense_tickets est modifiée, et aussi, lorsque la page est rechargée
la source
trigger()
ne fonctionnait pas. Il s'avère que j'avais le code de déclenchement placé AU-DESSUS de la fonction qu'il appelait - donc le crochet n'était pas réellement en place. Doh!jQuery
.trigger('click');
ne provoquera le déclenchement d'un événement que sur cet événement, il ne déclenchera pas non plus l'action du navigateur par défaut.Vous pouvez simuler la même fonctionnalité avec le JavaScript suivant:
la source
Essayez ceci qui fonctionne pour moi:
la source
J'ai essayé les deux premières réponses, cela n'a pas fonctionné pour moi tant que j'ai supprimé "display: none" de mes éléments d'entrée de fichier. Ensuite, je suis revenu à .trigger (), cela fonctionnait également à Safari pour Windows.
Donc conclusion, n'utilisez pas d'affichage: aucun; pour masquer votre entrée de fichier , vous pouvez utiliser opacity: 0 à la place.
la source
Techniquement pas une réponse à cela, mais une bonne utilisation de la réponse acceptée ( https://stackoverflow.com/a/20928975/82028 ) pour créer les boutons suivant et précédent pour les onglets des champs jQuery ACF:
la source
Utilisez simplement ceci:
la source
Vous ne pouvez pas simuler un événement de clic avec javascript. La
.trigger()
fonction jQuery ne déclenche qu'un événement nommé "clic" sur l'élément, que vous pouvez capturer avec la.on()
méthode jQuery.la source