Mam formularz ze zmienną liczbą pól autouzupełniania, które korzystają z tej samej listy wyboru. Te pola są dodawane i usuwane w razie potrzeby. Ilekroć parametr na stronie jest zmieniany, ja (próbuję) zaktualizować listę dla wszystkich pól, najpierw wywołując unbind()
, a następnie autocomplete()
z nowym parametrem dodanym do adresu URL.Autouzupełnianie jQuery: jak odświeżyć listę?
$('input.foo').unbind().autocomplete(url?new_param=bar);
Problem polega na tym, że polecenie unbind() nie wydaje się rozłączać. Kiedy wpisuję pole wejściowe, odpala całą historię zdarzeń autouzupełniania.
Próbowałem również flushCache bezskutecznie.
Jak usunąć stare zdarzenia?
Dzięki.
Hej, dzięki za odpowiedź Deeksy. Próbowałem nieukierunkować, ale to nie zadziałało. Zrobiłem, jednak użyłem removeData ("events") i to działało! $ ('input.foo'). RemoveData ('events'). Autocomplete ('url? New_param = bar'); Pamiętaj, że jeśli to zrobisz, wszelkie inne zdarzenia związane z tym elementem zostaną zerwane. – cinematic
@cinematic Tak, patrząc na kod wtyczki autouzupełniania, niefortunne jest, że nazywają miejsce zdarzenia "keydown", ale nie kliknięcie, fokus lub inne zdarzenia dodane do wejścia jako część autouzupełniania. Jeśli by się tym zajmowali, byłoby to po prostu przejściem .unbind ("keypress.autocomplete"). Unbind ("click.autocomplete"). itp. chociaż to wszystko powinno być w nieukierunkowanym(), jak sądzę. – Deeksy
Nice ... Dziękujemy za rozwiązanie. – Cesar