Ich habe einen Link:
<ul id="titleee" class="gallery">
<li>
<a href="#inline" rel="prettyPhoto">Talent</a>
</li>
</ul>
und ich versuche es auszulösen, indem ich:
$(document).ready(function() {
$('#titleee').find('a').trigger('click');
});
Aber es funktioniert nicht.
Ich habe auch versucht: $('#titleee a').trigger('click');
Bearbeiten :
Ich muss tatsächlich auslösen, was auch immer hier aufgerufen wird <a href="#inline" rel="prettyPhoto">
location.href($('#titleee').find('a').attr("href"));
?$('#titleee a')[0].click();
. Mit anderen Worten, verwenden Sie die DOM-Klickmethode, nicht die jQuery-Methode. Upvote Graham Hotchkiss !$('ul#titleee li a[href="#inline"]').click();
Antworten:
Wenn Sie versuchen, ein Ereignis auf dem Anker auszulösen, funktioniert der Code, den Sie haben. Ich habe Ihr Beispiel in jsfiddle mit einem hinzugefügten eventHandler neu erstellt, damit Sie sehen können, dass es funktioniert:
Versuchen Sie, den Benutzer durch Klicken auf den Anker zu einem bestimmten Punkt auf der Webseite zu navigieren, oder versuchen Sie, daran gebundene Ereignisse auszulösen? Vielleicht haben Sie das Klickereignis nicht erfolgreich an das Ereignis gebunden?
Auch das:
ist das Äquivalent dazu:
Keine Notwendigkeit, find anzurufen. :) :)
quelle
Entschuldigung, aber der Event-Handler wird wirklich nicht benötigt. Was Sie brauchen, ist ein weiteres Element innerhalb des Tags, auf das Sie klicken können.
Jquery:
Hier geht es darum, auf was Sie klicken, und es ist nicht das Tag, sondern das Ding darin. Leider scheint Bare Text von JQuery nicht erkannt zu werden, aber es ist von Vanille-Javascript:
Oder indem Sie als Array auf das jQuery-Objekt zugreifen
quelle
.click()
genau das habe ich gebraucht!Da diese Frage in Google auf Platz 1 für "Auslösen eines Klicks auf ein
<a>
Element" steht und keine Antwort tatsächlich erwähnt, wie Sie das tun, gehen Sie folgendermaßen vor:Erläuterung: Sie lösen ein
click
für das zugrunde liegende HTML-Element aus, nicht für das jQuery-Objekt .Gern geschehen Googler :)
quelle
Mit dem von Ihnen angegebenen Code können Sie nicht erwarten, dass etwas passiert. Ich zweite @mashappslabs: zuerst einen Event-Handler hinzufügen:
dann lösen Sie Ihr Ereignis aus:
und Sie sollten die Nachricht in Ihrer Konsole sehen.
quelle
trigger
, aber die Aktion des Tags findet nicht statt. Es ist, als würde sich das Ereignis nicht auf das zugehörige DOM-Element übertragen. Die Antwort von @GrahamHotchkiss ist die einzige, die für mich zuverlässig funktioniert.Wenn Sie versuchen, ein Ereignis auf dem Anker auszulösen, funktioniert der Code, den Sie haben.
ODER
ODER
quelle
Nun, Sie müssen zuerst das Klickereignis einrichten, dann können Sie es auslösen und sehen, was passiert:
quelle
Dies ist die Demo zum Auslösen eines Ereignisses
quelle
Für Links sollte dies funktionieren:
quelle
Dies beantwortet Ihre Frage nicht genau, führt jedoch mit weniger Kopfschmerzen zum gleichen Ergebnis.
Ich habe immer meine Klickereignis-Aufrufmethoden, die die gesamte Logik enthalten, die ich ausführen möchte. Damit kann ich die Methode einfach direkt aufrufen, wenn ich die Aktion ohne einen tatsächlichen Klick ausführen möchte.
quelle
Sie sollten die native
.click()
Methode des Elements aufrufen oder diecreateEvent
API verwenden.Weitere Informationen finden Sie unter: https://learn.jquery.com/events/triggering-event-handlers/
quelle