入力ボックスが現在 jQuery UI オートコンプリートであるかどうかを検出するにはどうすればよいですか? これにはネイティブな方法はないようですが、次のような簡単なものがあることを願っています。
if ($("#q").autocomplete)
{
//Do something
}
ただし、その条件は常に true を返すようです。
if ($("#q").hasClass("ac_input")) {
// do something
}
アップデート
JQuery UI オートコンプリート ウィジェットのクラス名が「ui-autocomplete-input」になり、コードは次のようになります。
if ($("#q").hasClass("ui-autocomplete-input")) {
// do something
}
次のコード行によって、入力要素に関連付けられたオートコンプリート動作を見つけることもできます。
if ($('Selector').data('autocomplete')) {
}
使用できます
if( $.isFunction( $.fn.autocomplete ) ){ }
.isFunctionはjQueryライブラリの一部です。(引用: http://james.padolsey.com/jquery / .... isFunction)
オートコンプリート js を含めると、すべての $() オブジェクトに autocomplete() メソッドが定義されるためです (これらの要素のオートコンプリートを有効にする場合)。あなたの if() は、その関数がnullではないと言っているだけです。
残念ながら、これを確認できるシステムはありませんが(今日ラップトップを家に置きました)、オートコンプリートは使用している要素にcssクラス名を追加すると思います。あなたはそれを探すことができます。