Ich habe ein Formular mit einer variablen Anzahl von Autocomplete-Feldern, die dieselbe Auswahlliste verwenden. Diese Felder werden nach Bedarf hinzugefügt und entfernt. Wenn ein Parameter auf der Seite geändert wird, aktualisiere ich (versuche) die Liste für alle Felder, indem ich zuerst unbind()
und dann mit einem neuen Parameter anwecke, der zur URL hinzugefügt wurde.jQuery Autocomplete: Wie Liste aktualisieren?
$('input.foo').unbind().autocomplete(url?new_param=bar);
Das Problem ist, dass unbind() scheint nicht zu trennen sein. Wenn ich das Eingabefeld eintippe, wird der gesamte Verlauf der Autocomplete-Ereignisse ausgelöst.
Ich versuchte auch FlushCache ohne Erfolg.
Wie lösche ich die alten Ereignisse?
Danke.
Hey, danke für die Antwort Deeksy. Ich habe versucht, nichtautocomplete, aber es hat nicht funktioniert. Ich habe jedoch removeData ('events') verwendet und das hat funktioniert! $ ('input.foo'). RemoveData ('Ereignisse'). Autocomplete ('url? New_param = bar'); Beachten Sie, dass alle anderen Ereignisse, die an dieses Element angehängt sind, weggeblasen werden. – cinematic
@cinematic Yeah, in den AutoComplete-Plugin-Code geschaut, ist es bedauerlich, dass sie das "Keydown" -Ereignis, aber nicht den Klick, den Fokus oder andere Ereignisse, die der Eingabe als Teil der Autocomplete hinzugefügt werden. Wenn sie sich die Mühe gemacht hätten, durchzukommen, würde es nur darum gehen, .unbind ('keypress.autocomplete'). Unbind ('click.autocomplete'). usw. obwohl das alles in der unautocomplete sein sollte() nehme ich an. – Deeksy
Schön ... Danke für die Lösung. – Cesar