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
ライブラリチェックが完全に機能していないため、両方の関数を同じページで実行すると機能しません。
誰かがこれを行う方法を知っていますか?