Es fällt mir schwer zu verstehen, wie man einen Mausklick mit JQuery simuliert. Kann mir bitte jemand mitteilen, was ich falsch mache?
HTML:
<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
jQuery:
jQuery('#foo').on('click', function(){
jQuery('#bar').trigger('click');
});
Demo: FIDDLE
Wenn ich auf die Schaltfläche #foo klicke, möchte ich einen Klick auf #bar simulieren. Wenn ich dies jedoch versuche, passiert nichts. Ich habe es auch versucht, jQuery(document).ready(function(){...})
aber ohne Erfolg.
javascript
jquery
html
triggers
eventtrigger
lickmycode
quelle
quelle
jQuery trigger
funktioniert nur, wenn ein 'jQuery click'-Ereignis hinzugefügt wird. Andernfalls können Sie auf diese Weise nichts tun.Antworten:
Sie müssen
jQuery('#bar')[0].click();
einen Mausklick auf das eigentliche DOM-Element (nicht auf das jQuery-Objekt) simulieren , anstatt die.trigger()
jQuery-Methode zu verwenden.Hinweis: DOM Level 2
.click()
funktioniert bei einigen Elementen in Safari nicht . Sie müssen eine Problemumgehung verwenden.http://api.jquery.com/click/
quelle
Sie müssen nur ein kleines Timeout-Ereignis einfügen, bevor Sie dies tun
.click()
:quelle
Dies ist das JQuery-Verhalten. Ich bin nicht sicher, warum es so funktioniert, es löst nur die onClick-Funktion auf dem Link aus.
Versuchen:
quelle
trigger()
soll den JavaScript- Teil des Klickereignisses ausführen . Es ist sehr ähnlich wie das Erstellen eines, dasfunction var() {}
mehrfach wiederverwendet wird.Siehe meine Demo: http://jsfiddle.net/8AVau/1/
quelle
this.click();
in einelse if(this.click)
Könnte nützlich sein:
Der Code, der den Trigger aufruft, sollte nach dem Aufruf des Ereignisses angezeigt werden.
Zum Beispiel habe ich Code, den ich ausführen möchte, wenn der Wert von #expense_tickets geändert wird und wenn die Seite neu geladen wird
quelle
trigger()
nicht funktionierte. Es stellte sich heraus, dass ich den Triggercode über der aufgerufenen Funktion gesetzt hatte - der Hook war also nicht wirklich vorhanden. Doh!jQuery's
.trigger('click');
löst nur ein Ereignis bei diesem Ereignis aus, nicht auch die Standardbrowseraktion.Sie können dieselbe Funktionalität mit dem folgenden JavaScript simulieren:
quelle
Versuchen Sie dies, das für mich funktioniert:
quelle
Ich habe die beiden besten Antworten ausprobiert. Es hat bei mir nicht funktioniert, bis ich "display: none" aus meinen Dateieingabeelementen entfernt habe. Dann kehrte ich zu .trigger () zurück, es funktionierte auch bei Safari für Windows.
Fazit: Verwenden Sie keine Anzeige: keine; Um Ihre Dateieingabe auszublenden , können Sie stattdessen die Deckkraft 0 verwenden.
quelle
Technisch keine Antwort darauf, aber eine gute Verwendung der akzeptierten Antwort ( https://stackoverflow.com/a/20928975/82028 ), um die Schaltflächen next und prev für die Registerkarten in jQuery ACF-Feldern zu erstellen:
quelle
Verwenden Sie einfach dies:
quelle
Sie können ein Klickereignis nicht mit Javascript simulieren. Die jQuery-
.trigger()
Funktion löst nur ein Ereignis mit dem Namen "click" auf das Element aus, das Sie mit der.on()
jQuery-Methode erfassen können .quelle