Jquery comment déclencher événement de clic sur le href de l'élément
Je suis en train de déclencher événement de clic sur un lien hypertexte avec jquery comme la façon ci-dessous. Lien hypertexte n'ont aucune id mais il n'ont cssclass
$(document).ready(function () { $('.cssbuttongo').trigger('click'); });
La fonction ci-dessus ne fonctionne pas. C'est le lien hypertexte
<a href="hyperlinkurl" class="cssbuttongo">hyperlink anchor</a>
Merci pour les réponses.
- En tant que classe peut être appliqué à plusieurs éléments dans le DOM, il semble pas une bonne idée de déclencher un clic sur eux.
- NomikOS vous êtes très bon à ce sujet, mais j'ai vérifié que tout autre élément utilise cette classe css 🙂
- stackoverflow.com/questions/7999806/...
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas de preuves factuelles, pour le prouver, mais j'ai déjà rencontré ce problème. Il semble que le déclenchement d'un événement click() sur un
<a>
balise ne semble pas se comporter de la même façon que vous attendez à dire, une touche d'entrée.La solution de contournement j'ai employé était de définir l'emplacement.href bien sur la fenêtre qui provoque le chargement de la demande de ressources de la sorte:
Edit:
Je voudrais faire un js fiddle, mais la nature de la question mélangés avec de comment jsfiddle utilise une iframe pour rendre le code fait qu'un aller sans.
onclick
événement. Il suffit de ne$('.cssbuttongo')[0].click()
pour simuler correctement un clic dans son intégralité.Le natif méthode DOM fait la bonne chose:
Cela fonctionne indépendamment du fait que le
href
est une URL, un fragment (p. ex.#blah
) ou même unjavascript:
.Noter que cette appelle le DOM
click
méthode au lieu de jQueryclick
méthode (qui est très incomplète et ignore complètementhref
).[0].click()
qui ne fonctionne pas comme prévu.$('.cssbuttongo').click(); // ignores href!
ne sera pas garantie à travailler. Le dernier le sera toujours, parce que l'utilisation de l'indice [0] fera l'Objet jQuery régulier de la JS Objet qui est exactement le même que celui du navigateur utilise. @Wei Liuclick()
est une fonction jQuery, tandis que$('.cssbuttongo')[0]
de ne pas renvoyer un objet jQuery. Cela devrait lever une erreur. Je ne sais pas comment cela fonctionne pour beaucoup de gens. La syntaxe correcte devrait être:$($('.cssbuttongo')[0]).click()
undefined
erreur. Doit être quelque chose de mal sur ma fin, car de nombreuses personnes sont en témoignant de ce que votre solution est de travailler pour eux 🙂En plus de romkyns de grande réponse.. voici certains documents pertinents et des exemples.
Des Éléments du DOM avoir un natif
.cliquez sur()
méthode.Pertinentes W3 documentation.
Quelques exemples..
Vous pouvez accéder à un niveau particulier de l'élément DOM à partir d'un objet jQuery: (exemple)
Vous pouvez utiliser le
.get()
méthode pour récupérer un élément du DOM à partir d'un objet jQuery: (exemple)Comme prévu, vous pouvez sélectionner l'élément du DOM et de l'appel de la
.cliquez sur()
méthode. (exemple)Il est intéressant de souligner que jQuery est pas nécessaire pour déclencher un natif
.cliquez sur()
événement.Déclenchement d'un clic via le JavaScript ne sera pas ouvrir un lien hypertexte. C'est une mesure de sécurité intégré dans le navigateur.
Voir cette question pour certaines solutions de contournement, si.
[0]
est important dans votre violontarget="_blank"
Veux juste vous les gars, vous le savez, la accepté de répondre ne fonctionne pas toujours.
Voici un exemple ce sera un échec.
si
<href='/list'>
ou vous pouvez ajouter le href de jQuery pour cette
ou jQuery façon
Enfin, l'invoquer pour modifier le navigateur actuel url de la page
ou de la pop à l'aide de
window.open(url)
Ici's un exemple dans JSFiddle.
$('css_selector')[0].click()
? Il travaille dans le ce JsFiddle...$('.cssbuttongo').click();
ne fonctionne pas car il ne donne que quelle que soit la valeur de href, au lieu de l'URL du navigateur. Désolé pour les commentaires trompeurs.[0].click()
fonctionne, pourquoi est-ce que votre réponse ne mentionne pas qu'?location.href
accepte les chemins relatifs, afin de l'utiliser/list
ajoutera automatiquement le domaine actuel. Donc, il ne le travail.J'ai été confronté à un problème similaire manière de cliquer sur un bouton, au lieu d'un lien. Il n'a pas de succès dans les méthodes .trigger('click') ou [0].cliquez sur(), et je ne savais pas pourquoi. Au dernier, le suivant est de travailler pour moi: