동일한 선택 목록을 사용하는 변수 자동 채우기 필드가있는 양식이 있습니다. 이 필드는 필요에 따라 추가되고 제거됩니다. 페이지의 매개 변수가 변경 될 때마다 먼저 URL에 새로운 매개 변수가 추가 된 unbind()
을 호출하고 autocomplete()
을 호출하여 모든 필드의 목록을 업데이트합니다 (시도).jQuery 자동 완성 : 목록을 새로 고치는 방법은 무엇입니까?
$('input.foo').unbind().autocomplete(url?new_param=bar);
문제는 unbind()가 바인딩 해제되지 않는 것입니다. 입력 필드에 입력하면 자동 완료 이벤트의 전체 기록이 실행됩니다.
또한 flushCache를 사용해 보았습니다.
이전 이벤트는 어떻게 정리합니까?
감사합니다. (
$('input.foo').unautocomplete().autocomplete('url?new_param=bar');
이 unautocomplete 기능은 모두 제거해야합니다)에 코드를 변경하는 경우가 작동해야하므로
안녕하십니까, Deeksy에 답해 주셔서 감사합니다. 내가 불완전한 시도했지만 작동하지 않았다. 내가 했어, 그러나 removeData ('events')를 사용하면 효과가있다! $ ('input.foo'). removeData ('events'). autocomplete ('url? new_param = bar'); 그렇게하면 해당 요소에 연결된 다른 모든 이벤트가 날아가 버릴 수 있습니다. – cinematic
@cinematic 예, 자동 완성 플러그인 코드를 살펴보면 자동 완성의 일부로 입력에 추가 된 클릭, 포커스 또는 기타 이벤트가 아닌 'keydown'이벤트의 네임 스페이스가 불행한 일입니다. 그들이 따라하기를 귀찮아한다면, .unbind ('keypress.autocomplete'). unbind ('click.autocomplete')로가는 것이 문제가 될 것입니다. 그래도 그 모든 것이 내가 가정 한 unautocomplete()에 있어야합니다. – Deeksy
좋은 ... 해결책 주셔서 감사합니다. – Cesar