문제

입력 상자가 현재 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 클래스 이름을 추가한다고 생각합니다. 당신은 그것을 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top