2011-09-08 24 views
83

Sto tentando di verificare se la mia libreria Jquery è stata caricata nella mia pagina HTML. Sto controllando per vedere se funziona, ma qualcosa non è giusto. Ecco quello che ho:Verifica se jquery viene caricato utilizzando Javascript

<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

Non utilizzare una R maiuscola in "$ (documento) .Prima" – Serigan

+3

'avviso (finestra. $? 1: 0)' – Thielicious

risposta

165

qualcosa non è giusto

Bene, si sta utilizzando jQuery per verificare la presenza di jQuery. Se jQuery non è caricato allora $() non verrà nemmeno eseguito e la tua callback non verrà eseguita, a meno che tu non stia utilizzando un'altra libreria e quella libreria condivida la stessa sintassi $().

Rimuovere la tua $(document).ready() (uso qualcosa come window.onload invece):

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

Ciò genera comunque un errore così come quando 'jQuery' non è definito. È necessario controllare per 'window.jQuery'. – gilly3

+0

@ gilly3: Sì, fastidiosi problemi di scoping. Fisso. – BoltClock

+0

Ho il file jquery-1.6.3.min.js nella stessa directory del file html. Non sono sicuro del motivo per cui non viene caricato. – SoftwareSavant

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

Solo una piccola modifica che potrebbe effettivamente risolvere il problema:

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

Invece di $(document).Ready(function() uso window.onload = function().

16

Secondo this link:

if (typeof jQuery == 'undefined') { 

    // jQuery IS NOT loaded, do stuff here. 

} 


ci sono un paio di più nei commenti del collegamento così come,

if (typeof jQuery == 'function') 
//or 
if (typeof $== 'function') 


e

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


Spero che questo copra tutti i buoni modi per fare questa cosa !!

+2

Il downvoting di una risposta è ancora più utile quando viene menzionato un motivo per il downvoting –

+0

Anche se non ho trovato la risposta utile, ho votato per errore. Mi dispiace davvero, non c'è modo di cambiare Ora leggerò le tue altre risposte e voterò uno di loro per compensare –

+0

@NicolaiKant Non mi sono reso conto che era una cosa – Erutan409

-1

Un modo rapido è eseguire un comando jQuery nella console di sviluppo. Su qualsiasi browser, premi F12 e prova ad accedere a qualsiasi elemento.

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

enter image description here

-1

Si può semplicemente digitare window.jQuery in console. Se restituisce una funzione (e, n) ... Quindi viene confermato che il jQuery viene caricato e funziona correttamente.

Problemi correlati