ทดสอบว่า jQueryUI โหลดหรือไม่


130

ฉันกำลังพยายามแก้ไขข้อบกพร่องของเว็บไซต์และฉันคิดว่า jQueryUI อาจโหลดไม่ถูกต้อง จะทดสอบได้อย่างไรว่า jQueryUI โหลดแล้ว

คำตอบ:


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

หรือ

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

ควรทำเคล็ดลับ


2
ปัญหาของฉันคือฉันโหลด jQuery และ jQuery.ui แบบไดนามิก บางครั้งมันโหลดทันเวลาบางครั้งก็ไม่ หากไม่ได้โหลด ui ฉันจะรอได้อย่างไร (หรือบังคับให้โหลด) ก่อนที่จะเรียกใช้วิธีใด ๆ
Gabriel Diaconescu

17
ไม่แน่ใจว่าสิ่งนี้สร้างความแตกต่างได้มากหรือไม่ แต่จากการทดสอบของ Boilerplate สำหรับ jquery พวกเขาใช้window.jQueryสำหรับ jQuery UI ฉันใช้การทดสอบwindow.jQuery.ui
Tim B James

สิ่งนี้ไม่ได้ผลสำหรับฉัน ใครช่วยลองดู jsfiddle นี้และแจ้งให้เราทราบหากฉันทำอะไรผิด jsfiddle.net/vEvYv/1 ฉันคาดหวังว่าคำสั่ง if อื่นของฉันจะทำงานเพราะฉันไม่ได้โหลด jQuery ยกเว้นมันล้มเหลวในบรรทัดแรก เรียกใช้เพจโดยเปิดคอนโซลเบราว์เซอร์ของคุณ (ฉันใช้ FF) และดูบรรทัดjQuery is not defined
Dave Haigh

2
@DaveHaigh - คุณยังไม่ได้โหลด JQuery JQuery UI ขึ้นอยู่กับ JQuery
Chris Haines

16

คุณต้องตรวจสอบว่ากำลังโหลดไฟล์jQuery UI LibraryและCSS Themeหรือไม่

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.