문제
입력 상자가 현재 jQuery UI AutoComplete인지 여부를 어떻게 감지 할 수 있습니까? 이것에 대한 기본 방법이없는 것 같지만 다음과 같은 간단한 것이 있기를 바랍니다.
if ($("#q").autocomplete)
{
//Do something
}
그러나 그 조건부는 항상 사실을 돌려주는 것 같습니다.
해결책
if ($("#q").hasClass("ac_input")) {
// do something
}
업데이트
jQuery UI AutoComplete 위젯의 클래스 이름은 이제 'UI-Autocomplete-Input'이므로 코드가 다음과 같습니다.
if ($("#q").hasClass("ui-autocomplete-input")) {
// do something
}
다른 팁
다음 코드 라인을 통해 입력 요소에 첨부 된 자동 완성 동작을 찾을 수도 있습니다.
if ($('Selector').data('autocomplete')) {
}
당신이 사용할 수있는
if( $.isFunction( $.fn.autocomplete ) ){ }
. 방향은 jQuery lib의 일부입니다. (인용하다: http://james.padolsey.com/jquery/moyr)
자동 완성 jQuery UI 플러그인이 이미 페이지에 포함되어 있고 특정 (입력) 요소가 자동 완성 기능으로 설정되었는지 확인하려면 공식 API 방법 아래 그림과 같이:
if ($("#q").autocomplete("instance")) {
console.log("autocomplete already setup for #q");
} else {
console.log("NO autocomplete for #q");
}
자세한 내용은 다음에서 확인할 수 있습니다 http://api.jqueryui.com/autocomplete/#method-instance
AutoComplete JS를 포함하면 모든 $ () 객체에 정의 된 AutoComplete () 메소드가 있습니다 (해당 요소에 대해 자동 완성을 활성화하려는 경우). if ()는 그 함수가 무효가 아니라고 말합니다.
불행히도 나는 이것을 확인할 수있는 시스템이 없지만 (오늘 노트북을 집으로 옮겼습니다) AutoComplete은 사용중인 요소에 CSS 클래스 이름을 추가한다고 생각합니다. 당신은 그것을 찾을 수 있습니다.