jQueryUIがロードされたかどうかのテスト


129

Webサイトをデバッグしようとしていますが、jQueryUIが正しく読み込まれていない可能性があります。jQueryUIがロードされているかどうかをテストするにはどうすればよいですか?

回答:


243
if (jQuery.ui) {
  // UI loaded
}

または

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

トリックを行う必要があります


2
私の問題は、jQueryとjQuery.uiを動的にロードすることです。時間内に読み込まれることもあれば、読み込まれないこともあります。UIがロードされていない場合、メソッドを呼び出す前にそれを待つ(または強制的にロードする)にはどうすればよいですか?
ガブリエルディアコネスク2011

17
これが大きな違いをもたらすかどうかはわかりませんが、jqueryのボイラープレートのテストではwindow.jQuery、jQuery UIのテストを使用しますwindow.jQuery.ui
Tim B James

これは私にはうまくいきません。誰かがこのjsfiddleを見て、私が何か間違ったことをしているかどうか教えてください。jsfiddle.net/vEvYv/1 jQueryをロードしていないため、ifステートメントのelseが実行されることを期待しています。ただし、最初の行で失敗します。ブラウザコンソールを開いた状態でページを実行し(imはFFを使用)、次の行を確認しますjQuery is not defined
Dave Haigh

2
@DaveHaigh-JQueryがロードされていません。JQuery UIはJQueryに依存しています。
クリスヘインズ

16

jQuery UI LibraryファイルとCSSテーマの両方がロードされているかどうかを確認する必要があります。

jQuery UIはjQueryオブジェクトにプロパティを作成します。次のことを確認できます。

jQuery.ui
jQuery.ui.version

必要なCSSファイルが読み込まれているかどうかを確認するには、Firebugを使用して、[CSS]タブでテーマファイルを探すことをお勧めします。

以前にユーザーがjQuery UIライブラリを正しくロードしたが、CSSテーマが欠落しているときに問題が発生しました。


特定の機能がロードされているかどうかを確認するには、チェックは次のようになります(ツールチップなど)........................ if( typeof jQuery().tooltip != "undefined" )
jave.web

7

これは古い質問ですが、jQuery UIが読み込まれた後にのみ実行されるように、関連するイベントがないすべてのjQuery UIをラップするために使用できる簡単なスクリプトを次に示します。

function checkJqueryUI() {
    if (typeof jQuery.ui != 'undefined') {
        do_jqueryui();
    }
    else {
        window.setTimeout( checkJqueryUI, 50 );
    }
}
// Put all your jQuery UI stuff in this function
function do_jqueryui() {
    // Example:
    $( "#yourId" ).dialog();
}
checkJqueryUI();

3

たとえば、UIオブジェクトをテストするだけです

<script src="jquery.js"></script>
<script src="jquery-ui.js"></script>
<script>
  $(function(){
    // did the UI load?
    console.log(jQuery.ui);
  });
</script>

1

jQuery UIがロードされているかどうかは、次のような多くの方法で確認できます。

if (typeof jQuery.ui == 'undefined') {
   // jQuery UI IS NOT loaded, do stuff here.
}

または

if (typeof jQuery.ui != 'function') {
    // jQuery UI IS NOT loaded, do stuff here.
}

または

if (jQuery.ui) {
    // This will throw an error in STRICT MODE if jQuery UI is not loaded, so don't use if using strict mode
    alert("jquery UI is loaded");
} else {
    alert("Not loaded");
}


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.