Kiểm tra nếu jQueryUI đã tải


129

Tôi đang cố gắng gỡ lỗi một trang web và tôi nghĩ rằng jQueryUI có thể không được tải đúng cách. Làm cách nào để kiểm tra nếu jQueryUI đã được tải?

Câu trả lời:


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

HOẶC LÀ

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

Nên làm thủ thuật


2
vấn đề của tôi là tôi tải jQuery và jQuery.ui một cách linh hoạt. Nó đôi khi tải trong thời gian, đôi khi không. Nếu ui không được tải, làm thế nào tôi có thể đợi nó (hoặc buộc nó được tải) trước khi gọi bất kỳ phương thức nào?
Gabriel Diaconescu

17
không chắc điều này có tạo ra nhiều sự khác biệt hay không, nhưng với thử nghiệm của Boiler khắc cho jquery, họ sử dụng window.jQueryvì vậy đối với giao diện người dùng jQuery tôi sử dụng thử nghiệmwindow.jQuery.ui
Tim B James

điều này không làm việc cho tôi. ai đó có thể vui lòng xem jsfiddle này và cho tôi biết nếu tôi đang làm gì đó sai. jsfiddle.net/vEvYv/1 Tôi mong đợi câu lệnh if khác của tôi chạy vì tôi không tải jQuery. ngoại trừ, nó thất bại trên dòng đầu tiên. Chạy trang với bảng điều khiển trình duyệt của bạn mở (tôi đang sử dụng FF) và xem dòngjQuery is not defined
Dave Haigh

2
@DaveHaigh - bạn chưa tải JQuery. Giao diện người dùng JQuery phụ thuộc vào JQuery.
Chris Haines

16

Bạn cần kiểm tra xem cả hai, tệp Thư viện giao diện người dùng jQuery và Chủ đề CSS có đang được tải không.

Giao diện người dùng jQuery tạo các thuộc tính trên đối tượng jQuery, bạn có thể kiểm tra:

jQuery.ui
jQuery.ui.version

Để kiểm tra xem (các) tệp CSS cần thiết đã được tải chưa, tôi khuyên bạn nên sử dụng Fireorms và tìm các tệp chủ đề trên tab CSS.

Tôi đã thấy các vấn đề trước đây, khi người dùng tải chính xác thư viện UI UI nhưng thiếu chủ đề CSS.


Để kiểm tra xem một số chức năng cụ thể đã được tải chưa, kiểm tra sẽ như thế nào (ví dụ: đối với tooltip) ........................ if( typeof jQuery().tooltip != "undefined" )
jave.web

7

Tôi biết đây là một câu hỏi cũ, nhưng đây là một đoạn script nhỏ mà bạn có thể sử dụng để bao bọc tất cả các giao diện người dùng jQuery của bạn không có sự kiện liên quan để đảm bảo chúng chỉ được thực thi sau khi tải UI 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

Chỉ cần kiểm tra đối tượng ui, vd

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

1

Bạn có thể kiểm tra xem jQuery UI có được tải hay không bằng nhiều cách như:

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

HOẶC LÀ

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

HOẶC LÀ

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");
}


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.