6
votes

Comment simuler l'utilisateur en cliquant sur un lien dans JQuery?

Maintenant, il y a beaucoup de questions d'apparence similaires ici, mais je me demandais, que dois-je faire, si je veux ne pas simplement changer l'emplacement code> code> de la fenêtre, mais déclencher toutes les fonctions Soyez lié à l'événement CODE> Cliquez sur CODE> et modifiez uniquement le href code> si elles sont correctes avec elle ou simplement rediriger, s'il n'y a pas d'auditeurs.

Par exemple: xxx pré>

dois-je cliquer sur le lien avec la souris, il ne me prendra jamais à la HREF, alors redirigeons simplement l'utilisateur à attr ("href ') code> changerait le comportement prévu de la page. En outre, en cliquant s'applique non seulement à des liens, mais de dire, de dire, de dire que, dans ce cas, je devrais soumettre le formulaire, etc. p>

Alors je me demandais, s'il est possible d'imiter un clic élément, de sorte que tout le comportement du navigateur est exactement le même, comme si vous cliquez sur la souris? p>

Il ne peut y avoir aucun auditeur lié à un lien. P>

Exemple: P> >

var a = $('<a href="google.com">google</a>');
a.click();
a.trigger('click');


2 commentaires

Stackoverflow.com/Questtions/809038/... Lorsque vous


Avez-vous essayé la fonction Live () JQuery? API.JQUERY.com/Live


4 Réponses :


0
votes

Oui, très simple:

$('#YourSelector').click();


2 commentaires

Il va simplement déclencher des auditeurs à lier à cliquer sur l'événement (le cas échéant) - il ne redirige pas l'utilisateur, à moins que l'un des auditeurs ne le fait - et qui est différent d'un clic de souris


Oui, tu as raison :). De l'explication donnée, je suis passé de l'hypothèse selon laquelle ses fonctions avaient ces auditeurs.



-1
votes

Je n'ai pas vraiment ce que vous voulez faire. Avec ceci: xxx

Vous pouvez arrêter le comportement par défaut de l'événement (dans ce cas, rediriger vers A.ATTR ("href")). Vous pouvez ensuite effectuer la tâche que vous voulez, puis rediriger l'utilisateur manuellement.

est-ce que vous recherchez?

Si vous souhaitez déclencher l'événement de clic, il suffit de faire < / p> xxx


1 commentaires

Cliquez sur Ne déclenchez pas l'événement de clic natif.



2
votes

Essayez A [0] .Cliquez sur ();

Ceci exécutera la méthode sur de l'élément DOM au lieu de déclencher l'événement.


2 commentaires

Fonctionne bien dans Firefox, vous savez-vous s'il est correctement pris en charge dans d'autres navigateurs?


Cela ne fonctionne pas dans WebKit, vous devez créer manuellement l'événement.



15
votes

in IE, vous pouvez appeler .Cliquez sur () code> sur l'élément, mais pour les navigateurs standard, vous devez simuler l'événement de clic en créant un événement de souris natif, puis utilisez DisqueTrevent Code> Pour le déclencher.

Je t'appelle tout dans ce "plugin" jQuery: p> xxx pré>

maintenant, appelez simplement: p>

$('.edithost').simulateClick();


2 commentaires

+1 de moi. Je supprime ma réponse, car c'est fondamentalement la même chose.


Je l'ai amélioré (j'espère) à ceci: `$ .fn.simulateclick = fonction () {si ('CreateEeEvent' dans le document) {var doc = document; var evt = doc.CreateEvent ("MouseEevents"); evt.initmouseevent ("cliquer", vrai, true, doc.defaultview, 1, 0, 0, 0, 0, false, false, false, false, 0, null); renvoyer cela.ach (fonction () {this.dispatchevent (EVT);}); } d'autre retour cela.ach (fonction () {this.click (); // ie}); };