質問

入力ボックスが現在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

ページにオートコンプリート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

オートコンプリートjsを含めると、すべての$()オブジェクトにautocomplete()メソッドが定義されるようになりました(これらの要素のオートコンプリートを有効にしたい場合)。 if()は、その関数がnullではないことを言っているだけです。

残念ながら、これを確認できるシステムはありません(今日はラップトップを家に置いておきます)が、オートコンプリートは使用している要素にcssクラス名を追加すると考えています。探すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top