Jquery'nin Javascript kullanılarak yüklenip yüklenmediğini kontrol etme


176

Jquery Kütüphanemin HTML sayfama yüklenip yüklenmediğini kontrol etmeye çalışıyorum. Çalışıp çalışmadığını kontrol ediyorum, ama bir şey doğru değil. İşte ne var:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="/query-1.6.3.min.js"></script>
        <script type="text/javascript">
          $(document).ready(function(){
             if (jQuery) {  
               // jQuery is loaded  
               alert("Yeah!");
             } else {
               // jQuery is not loaded
               alert("Doesn't Work");
             }
          });
        </script>

3
"$ (Document) .Ready" harfinde R harfi kullanmayın
Serigan

7
alert(window.$?1:0)
Thielicious

Neden hala eski xhtml standardını kullanıyorsunuz? <!doctype html>bunun yerine sadece kullanın
Geek Luke

Eğer $(document)hazır fonksiyon tüm çalışır, sonra jquery yüklenir. Yani sadece $(document).ready(function(){ alert("Ready!"); }); Granted yapabilirsiniz , jquery çalışmazsa bu bir uyarı göstermez. Ancak, jquery kitaplığına doğru bir şekilde başvurduğunuzu doğrulamanız gerekiyorsa yeterlidir.
ToolmakerSteve

Yanıtlar:


338

bazışeyler doğru değil

Peki, jQuery varlığını kontrol etmek için jQuery kullanıyorsunuz. Eğer jQuery yüklü $()değilse, başka bir kütüphane kullanmadığınız ve bu kütüphane aynı $()sözdizimini paylaşmadığı sürece, hiç çalışmaz ve geri arama işleminiz yürütülmez .

Cihazınızı kaldırın $(document).ready()( window.onloadbunun gibi bir şey kullanın):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

1
Bu jQuery, tanımsız olduğu gibi hala bir hata atar . Kontrol etmeniz gerekiyor window.jQuery.
gilly3

@ gilly3: Evet, sinir bozucu kapsam belirleme sorunları. Sabit.
BoltClock

Html dosyası ile aynı dizinde jquery-1.6.3.min.js dosyası var. Neden yüklenmediğinden emin değilim.
SoftwareSavant

3
@ Etki Alanı: İkisi de kök dizinde mi? Sizin srclider vardır /o kök bakıyor, o aracı.
BoltClock

Aslında hayır. Bunu değiştireyim ve bir şans vereyim.
SoftwareSavant

46

Gereğince bu linke:

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


bağlantının yorumlarında birkaç tane daha var,

if (typeof jQuery == 'function') {...}

//or

if (typeof $== 'function') {...}

// or

if (jQuery) {
    alert("jquery is loaded");
} else {
    alert("Not loaded");
}


Umarım bu şey yapmak için iyi yolların çoğunu kapsar !!


2
@JakeN Belli bir süre sonra, gönderi düzenlenmedikçe downvotes geri alınamaz. Ancak bu yazı ile ilgili bir sorun var: if (jQuery) {jQuery yüklü değilse katı modda bir hata atar, böylece son kod snippet'i kötü bir öneri olur.
JLRishe

21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}

15

Web sayfanızı incelerken bunu hızlı bir şekilde konsol sekmesinde yapabilirsiniz.

Örneğin:

$ === jQuery

Eğer geri dönerse trueyüklü demektir.


Ancak, jQuery yüklü değilse bir istisna Uncaught ReferenceError: jQuery is not defined
doğuracaktır

10

Sorunu gerçekten çözebilecek küçük bir değişiklik:

window.onload = function() {
   if (window.jQuery) {  
       // jQuery is loaded  
       alert("Yeah!");
   } else {
    location.reload();
   }
}

Yerine $(document).Ready(function()kullanımı window.onload = function().


1

Eğer jQueryuyumsuz yükleniyor o tanımlanır kadar, bunun için zamanın her döneminde kontrol bekleyebilir:

(function() {
    var a = setInterval( function() {
        if ( typeof window.jQuery === 'undefined' ) {
            return;
        }
        clearInterval( a );

        console.log( 'jQuery is loaded' ); // call your function with jQuery instead of this
    }, 500 );
})();

Bu yöntem herhangi bir değişken için kullanılabilir, görünmesini bekliyorsunuz.


-2

Sadece window.jQueryKonsol yazabilirsiniz . Bir işlevi (e, n) döndürürse ... Jquery'nin yüklendiği ve başarıyla çalıştığı doğrulanır.


-4

Hızlı bir yol, geliştirici konsolunda bir jQuery komutu çalıştırmaktır. Herhangi bir tarayıcıda F12 tuşuna basın ve öğenin herhangi birine erişmeye çalışın.

 $("#sideTab2").css("background-color", "yellow");

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.