Si je comprends correctement, pour déclencher de manière programmable un événement de clic jQuery attaché à un objet avec une classe CSS de mon-bouton code>, vous devriez être capable de simplement faire ceci:
$('<a class="my-button"/>')
.click(function() { /* code here */ })
.appendTo(parent);
9 Réponses :
impair. Avez-vous essayé Pour débogage, essayez de lier un événement en direct sur la page que le widget est chargé dans. P> .trigger ('click') code>? Théoriquement, ils devraient être les mêmes (regarder le code JQuery pour le découvrir).
Essayez de lierer un .Live ('Cliquez sur', ...) CODE> Evénement sur la page que le widget est chargé pour, juste pour voir si son problème avec le widget est chargé et évalué .
Le gestionnaire d'événements code> cliquez sur CODE> Trouver Trouver. En cliquant sur le lien fonctionne. Déclencher par programmation ne le fait pas.
DOCS dit "Bien que .Trigger () simule une activation d'événement, avec un objet d'événement synthétisé, il ne reproduit pas parfaitement un événement naturel." I> essayant de comprendre ce que cela signifie exactement, mais peut-être sa relation.
Ouais, j'essaie d'appeler .trigger ("click") sur un img à l'intérieur d'un
Vous devez utiliser:
$('.my-button').trigger("click");
Nous avons essayé d'utiliser .trigger ("cliquer") code>; cela n'a pas non plus fonctionné. Ils font la même chose, de toute façon.
Mon meilleur devin est que le gestionnaire est lié après avoir essayé de déclencher l'événement.
Essayez: p> ou à l'aide de votre code d'origine - déclencher l'événement dans le rappel de votre demande JSONP. P> P>
J'ai eu la même pensée, mais le déclenchement programmatique se produit définitivement après que le gestionnaire ait été lié. Le déclenchement a lieu dans l'événement Cliquez sur CODE> d'un autre
A code> dans la page.
@Jacob: Est-ce qu'ils descendent les uns des autres?
Cela s'est avéré être un cas de deux scripts jQuery en cours de chargement. Le script récupéré via JSONP incluait le chargement de JQuery et que l'objet JQuery a été utilisé pour attacher le gestionnaire d'événements. Pendant ce temps, dans la page Web de ma collègue, il avait chargé sa propre jQuery. Par conséquent, ce second objet JQuery, n'ayant aucune connaissance des gestionnaires d'événements du premier, était incapable d'invoquer par programmation le gestionnaire. P>
Oh mon Dieu! Je me luttais avec le même problème. Dans mon cas aussi, j'ai eu plusieurs instances de JQuery.
J'ai eu le même problème et que je changeai de la manière dont j'ai lié l'événement à la fonction fixe a ensuite modifié la liaison selon l'exemple dans http://api.jquerery.com/trigger/ p>
Je ne sais pas si Cross-Domain JSONP a quelque chose à voir avec cela, mais je dois dire que cela déclenche par programmation d'un événement de clic sur un sélecteur qui a trait à un lien HTML ( Je soupçonne qu'il doit s'agir d'une sorte de politique de navigateur, de manière à bloquer les pop-ups. Considérez le fait que les navigateurs, ont un mécanisme pour suivre et bloquer les pop-ups et permettent principalement à l'utilisateur autorisant une action de clic avant que le nouveau lien apparaisse. P>
Si vous pouviez cliquer surmmatiquement un lien via jQuery, la redirection, les popups et tout ce genre de choses serait plus facile à faire. Il n'est donc pas possible. Juste pour être clair: p>
... code>) ne fonctionne pas. p>
link1 code> Vous ne pouvez pas déclencher cela. P>
link2 code> Vous pouvez déclencher une onclick ici, car il ne contient pas href. p>
Merci. C'était la solution qui m'a aidé. Je faisais le même processus, l'un déclenchant un appel Ajax qui a fonctionné et sur une autre page, je n'avais pas besoin de l'Ajax, et la configurez-le comme un lien régulier. Cela n'a pas fonctionné. Pour obtenir le mien pour travailler et recharger la page entière, je devais définir le document.Location égal à l'attribut href du lien.
retourner sur le DOM et le faire avec: p>
$ ("Abutton") [0] .Cliquez sur (); P>
S'il ne rappelle pas les événements, en particulier la coutume, qui sont correctement enregistrées, il est probable que la bibliothèque de jQuery est chargée à nouveau, après avoir affecté un gestionnaire d'événements.
Vérifiez votre code à l'aide de: p>
Je l'ai également rencontré mais je n'avais pas de jQuery multiple. p>
lire à travers les réponses ici, j'ai réalisé que c'était à cause de l'ordre d'exécution. Je lie le gestionnaire d'événements quelques lignes après avoir eu la fonction qui a invoqué le clic. P>
C'était un Doh! moment ... p>
Eh bien, pour un démarrage, votre code d'attachement du gestionnaire a une erreur de syntaxe ...
Merci d'avoir souligné la faute de frappe, @ scientifique.
Je me souviens de courir dans un problème comme celui-ci sur JQuery 1.4.3