1

jQuery UI変調された方法で使用しようとしています。.JSすべての機能を備えた1つのファイル(200kbより大きい)をロードする代わりにjQuery UI

<script type="text/javascript" src="jquery.ui.custom.js"></script>

必要なものだけをロードするつもりです(たとえば、オートコンプリートの場合)。

<script type="text/javascript" src="jquery.ui.core.min.js"></script>
<script type="text/javascript" src="jquery.ui.widget.min.js"></script>
<script type="text/javascript" src="jquery.ui.position.min.js"></script>
<script type="text/javascript" src="jquery.ui.menu.min.js"></script>
<script type="text/javascript" src="jquery.ui.autocomplete.min.js"></script>

ただし、オートコンプリート機能が検出されない場合にのみ、JavaScriptを介してこれらのファイルをロードしたいと思います。この状態jQuery UIのページにが読み込まれているかどうかを確認できます。JavaScript

if (typeof jQuery.ui !== 'undefined'){
    // jQuery UI core is loaded
}

私がする必要があるのは、jQuery UIオートコンプリート機能が使用できるかどうかを具体的に確認することです。

if (typeof jQuery.ui.autocomplete !== 'undefined'){
    // jQuery UI autocomplete is loaded
}

しかし、上記のコードはこのエラーを返します:

Uncaught TypeError: Object [object Object] has no method 'autocomplete'

私が達成しようとしているのjQuery UIは、リソースの1つが使用されている場合にのみライブラリをロードする方法です。GoogleなどのWebサイトからのホットリンクはオプションではなく、jQuery UI使用しているWebサイトのすべてのページにすべてのライブラリを配置することはできません。jQuery UIこれを実現するために、オートコンプリートやデイトピッカーなどのウィジェットを使用するためのカスタムjavascript関数を作成し、これらの関数内で、jQuery UIライブラリがロードされているかどうかを確認し、ロードされていない場合はロードします。オートコンプリートとDatepickerでこれを達成しましたが、jQuery UIライブラリチェックが完全に機能していないため、両方の関数を同じページで実行すると機能しません。

誰かがこれを行う方法を知っていますか?

4

1 に答える 1

3

オートコンプリートはjquery拡張機能の一部として定義されていませんか?私はあなたがチェックするべきだと思います:

$.fn.autocomplete

$('element')。autocomplete();を呼び出すので プラグインを呼び出します。

于 2013-01-19T03:34:57.517 に答える