quand il y ajquery's .click() ne fonctionne pas?
<a href="javascript:onclick:alert('hi')"> click </a>.
comment se $('a').click();
ne rend pas le message d'alerte?
quand il y ajquery's .click() ne fonctionne pas?
<a href="javascript:onclick:alert('hi')"> click </a>.
comment se $('a').click();
ne rend pas le message d'alerte?
Je pense que c'est ce que vous voulez:
<a href="#" onclick="alert('hi')"> click </a>
Ensuite, pour déclencher manuellement:
$('a').trigger('click');
oui. comment se fait-il que ça ne marche pas pour moi? également lorsqu'il existe réellement une URL href, pourquoi .trigger ('click') ne fait-il pas naviguer le navigateur? –
Pourquoi ne pouvez-vous pas attacher le gestionnaire d'événements en externe, comme indiqué dans yoda et mes réponses? Les gestionnaires d'événements en ligne ne sont pas recommandés. –
meder, je dois littéralement "cliquer" sur un élément. par exemple je l'ai fait $ ('a'). Trigger ('clic'); clickme Rien ne s'est passé .... –
La raison pour laquelle cela ne fonctionne pas est que vous n'attachez pas l'événement click correctement, vous le piratez en le plaçant dans la valeur href. Faites le lien vers # ou l'URL réelle, ne placez jamais JS en ligne. Ensuite, fixez le gestionnaire d'événements à l'extérieur:
$('a').click(function(e) {
e.preventDefault()
alert('hi')'
});
déclencher ensuite avec .trigger('click')
si vous avez besoin de le faire manuellement.
Faites-vous également référence à onclick? Quel est le problème avec onclick? – recursive
Il s'agit d'un gestionnaire d'événements en ligne et il est recommandé de séparer le contenu de la présentation, du comportement (tabouret à 3 pieds de conception Web). –
Que vous utilisiez javascript normal dans l'ancre ou que vous utilisiez jquery. Si vous voulez utiliser jquery, faites ceci:
$('a').click(function (e) {
e.preventDefault();
alert('hi');
});
.. et supprimer le code que vous avez à l'intérieur href = "" à quelque chose d'autre, comme un href = "#"
Cela ne résoudra pas le double-clic pour la première fois. –
@JeanPaul ce n'était pas le point. – yoda
Le problème est votre href code. Il y a deux façons de faire un lien appeler une fonction javascript lorsqu'un utilisateur clique dessus:
<a href="javascript:alert('hi');">click</a>
<a href="" onclick="alert('hi');">click</a>
Maintenant, vous pouvez utiliser le code jquery de cliquer sur le lien.
La raison pour laquelle vous ne pouvez pas déclencher l'événement de clic est que vous ne définissez pas tout événement de clic. Le onclick:
que vous avez dans le code n'a rien à voir avec l'événement onclick
, c'est juste une étiquette. Le nommer comme un événement ne fait rien de particulier.
Ainsi, votre code est équivalent à:
<a href="javascript:alert('hi')"> click </a>
Si vous voulez un événement, vous utilisez l'attribut onclick:
<a href="somepage.html" onclick="alert('hi');"> click </a>
Il y a une façon de faire le travail de déclenchement, cliquez avec href . Vous devez lier un appel window.location en utilisant la cible d'événement à l'événement click. Cela provoquera le déclenchement des actions onclick, suivies de la cible href. Comme si:
$("a").click(function(event) {
window.location = event.target.href;
});
$("a").trigger("click");
Il y a des cas que vous ne pouvez pas déplacer l'action href
-onclick
. (Comme ASP.NET republier boutons de lien) J'ai écrit la fonction au courant d'action href
ci-dessous pour déclencher cliquez dans de tels cas:
function triggerClickEvent(element) {
var e = $(element).click();
if (e.attr('href').indexOf('javascript:') === 0)
eval(e.attr('href').replace('javascript:', ''));
}
J'ai trouvé que la solution à ce problème a été importé JQuery via http://code.jquery.com/jquery-1.7.2.min.js lien plutôt que d'avoir sur mon localhost. J'utilise Kohana et cela a étrangement fait la magie.
J'ai besoin de "cliquer" littéralement sur un élément. par exemple j'ai fait ce $ ('a'). trigger ('click'); ; clickme Rien ne s'est passé –