Próbuję programowo (za pomocą jQuery) wywołać kliknięcie przycisku z zachowaniem AJAX w formie Drupala, ale jak dotąd jQuery('#edit-submit').click()
nic nie robi.
Prawdziwy myszy na który działa przycisk zgodnie z przeznaczeniem. Wszelkie pomysły, jak to zrobić?
7
ajax
javascript
Daniel
źródło
źródło
Odpowiedzi:
jQuery('#edit-submit').mousedown()
- najwyraźniej jest duża różnica.źródło
mousedown()
to tylko „pierwsza część”click()
wydarzenia, które jest kompletne, gdymouseup()
nastąpi. Kliknięcie łącza, a następnie zwolnienie myszy poza obszarem łącza,click()
zwykle nie powoduje zwolnienia, a łącze nie jest śledzone. Prawdopodobnie wywołanie ajax zapobiegamouseup()
zostać zwolniony, ale to tylko przypuszczenie ...Właściwie nie trzeba zgadywać.
Powinieneś używać zachowań Drupala
To da ci dostęp do właściwości ajax ustawień,
W zależności od konfiguracji powinna zostać wyświetlona lista elementów wyzwalających z różnymi właściwościami, takimi jak nazwa funkcji zwrotnej, identyfikator selektora, a także nazwa zdarzenia wyzwalającego.
Następnie możesz użyć odpowiednich informacji, aby uruchomić wydarzenie.
źródło
Utwórz ajax zgłoś jak poniżej.
Wtedy zdarzenie jquery .click () działałoby w formie drupal ajax.
źródło
Możesz także użyć
.trigger()
metody jQuery.$('#element').trigger('click');
źródło
W moim przypadku wyżej zalecane rozwiązania nie działały dla mnie, ale wzmianka o .mousedown () doprowadziła do następującego pomysłu, który zadziałał dla mnie (Drupal 7):
Istnieje kilka pomocnych informacji na temat „dlaczego”, tak jest w formularzu Dokumentacja interfejsu API pod #ajax_prevent
źródło
Patrząc na moduł Better Exposed Filters, przesyłają formularz AJAX, znajdując $ (. Ctools-auto-upload-click ”) i uruchamiając kliknięcie.
źródło
Musisz uruchomić
submit
zdarzenie w formularzu.Click
imousedown
zdarzenia na przyciskach nie działają.źródło