Ho un modulo con un numero variabile di campi di completamento automatico che utilizzano lo stesso elenco di selezione. Questi campi vengono aggiunti e rimossi secondo necessità. Ogni volta che un parametro sulla pagina viene modificato, I (provo a) aggiornare l'elenco di tutti i campi dalla prima chiamando unbind()
poi autocomplete()
con un nuovo parametro aggiunto alla URL.jQuery Autocomplete: come aggiornare la lista?
$('input.foo').unbind().autocomplete(url?new_param=bar);
Il problema è che unbind() non sembra essere non vincolante. Quando digito il campo di input, spara l'intera cronologia degli eventi di completamento automatico.
Ho anche provato flushCache senza alcun risultato.
Come faccio a cancellare i vecchi eventi?
Grazie.
Ehi, grazie per aver risposto Deeksy. Ho provato non completa, ma non ha funzionato. L'ho fatto, comunque uso removeData ('eventi') e questo ha funzionato! $ ('input.foo'). RemoveData ('events'). Autocomplete ('url? New_param = bar'); Si noti che se si fa questo, tutti gli altri eventi collegati a quell'elemento avranno spazzato via. – cinematic
@cinematic Sì, esaminando il codice del plugin di completamento automatico, è spiacevole che lo spazio dei nomi sia l'evento 'keydown', ma non il clic, il focus o altri eventi che vengono aggiunti all'input come parte del completamento automatico. Se si fossero presi la briga di seguire, sarebbe solo questione di andare .unbind ('keypress.autocomplete'). Unbind ('click.autocomplete'). ecc., ma dovrebbe essere tutto in uno non completo(), suppongo. – Deeksy
Nice ... Grazie per la soluzione. – Cesar