Trudno mi zrozumieć, jak symulować kliknięcie myszą za pomocą JQuery. Czy ktoś może mnie poinformować, co robię źle.
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
kiedy klikam przycisk #foo, chcę zasymulować kliknięcie na #bar, jednak kiedy to robię, nic się nie dzieje. Próbowałem też, jQuery(document).ready(function(){...})
ale bez powodzenia.
javascript
jquery
html
triggers
eventtrigger
lickmycode
źródło
źródło
jQuery trigger
działa tylko po dodaniu zdarzenia „jQuery click”. W przeciwnym razie nie będziesz w stanie nic zrobić w ten sposób;Odpowiedzi:
Musisz użyć
jQuery('#bar')[0].click();
do symulacji kliknięcia myszą w rzeczywisty element DOM (nie obiekt jQuery), zamiast używać.trigger()
metody jQuery.Uwaga: DOM Level 2
.click()
nie działa z niektórymi elementami w Safari . Będziesz musiał użyć obejścia.http://api.jquery.com/click/
źródło
Musisz tylko ustawić mały limit czasu, zanim zrobisz
.click()
to w ten sposób:źródło
To jest zachowanie JQuery. Nie jestem pewien, dlaczego to działa w ten sposób, uruchamia tylko funkcję onClick w linku.
Próbować:
źródło
trigger()
ma na celu wykonanie części kodu JavaScript zdarzenia kliknięcia . Jest to bardzo podobne do tworzeniafunction var() {}
wielokrotnie używanego pliku .Zobacz moje demo: http://jsfiddle.net/8AVau/1/
źródło
this.click();
welse if(this.click)
Może być użyteczne:
Kod, który wywołuje wyzwalacz, powinien przejść po wywołaniu zdarzenia.
Na przykład mam kod, który chcę wykonać, gdy wartość #expense_tickets zostanie zmieniona, a także, gdy strona zostanie ponownie załadowana
źródło
trigger()
nie działa. Okazało się, że miałem ustawiony kod wyzwalacza POWYŻEJ funkcji, którą wywoływał - więc zaczep nie był na miejscu. No!jQuery's
.trigger('click');
spowoduje tylko wyzwolenie zdarzenia dla tego zdarzenia, nie wyzwoli również domyślnej akcji przeglądarki.Możesz zasymulować tę samą funkcjonalność za pomocą następującego kodu JavaScript:
źródło
Spróbuj tego, który działa dla mnie:
źródło
Wypróbowałem dwie najlepsze odpowiedzi, ale nie zadziałało, dopóki nie usunąłem „display: none” z elementów wejściowych mojego pliku. Potem wróciłem do .trigger (), to też działało w Safari dla Windows.
Podsumowując, nie używaj display: none; aby ukryć dane wejściowe pliku , możesz zamiast tego użyć krycia: 0.
źródło
Technicznie nie jest to odpowiedź na to pytanie, ale dobre wykorzystanie zaakceptowanej odpowiedzi ( https://stackoverflow.com/a/20928975/82028 ) do tworzenia przycisków next i prev dla zakładek w polach jQuery ACF:
źródło
Po prostu użyj tego:
źródło
Nie możesz zasymulować zdarzenia kliknięcia za pomocą JavaScript.
.trigger()
Funkcja jQuery wywołuje tylko zdarzenie o nazwie „click” na elemencie, które można przechwycić.on()
metodą jQuery.źródło