2011-09-08 23 views
83

Estoy intentando verificar si mi biblioteca Jquery está cargada en mi página HTML. Estoy revisando para ver si funciona, pero algo no está bien. Aquí es lo que tengo:Comprobando si jquery se carga usando 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

No utilice una R mayúscula en "$ (documento) .Ready" – Serigan

+3

'alerta (ventana. $? 1: 0)' – Thielicious

Respuesta

165

algo no está bien

Bueno, está utilizando jQuery para comprobar la presencia de jQuery. Si jQuery no está cargado, entonces $() ni siquiera se ejecutará y su devolución de llamada no se ejecutará, a menos que esté utilizando otra biblioteca y que la biblioteca comparta la misma sintaxis $().

eliminamos su $(document).ready() (algo así como el uso window.onload lugar):

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

Esto todavía arrojará un error como cuando 'jQuery' no está definido. Necesita verificar 'window.jQuery'. – gilly3

+0

@ gilly3: Sí, molestos problemas de alcance. Fijo. – BoltClock

+0

Tengo el archivo jquery-1.6.3.min.js en el mismo directorio que el archivo html. No estoy seguro de por qué no se carga. – SoftwareSavant

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

Sólo una pequeña modificación que en realidad podría resolver el problema:

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

En lugar de $(document).Ready(function() uso window.onload = function().

16

Según this enlace:

if (typeof jQuery == 'undefined') { 

    // jQuery IS NOT loaded, do stuff here. 

} 


hay algunos más en los comentarios del enlace, así como,

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


y

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


¡Espero que esto cubra todas las buenas maneras de hacer esto!

+2

Bajar la votación de una respuesta es aún más útil cuando se menciona una razón para el downvoting. –

+0

Aunque no encontré la respuesta útil, la voté por accidente. Realmente lo siento, no hay forma de cambiar ahora. Leeré sus otras respuestas y votaré una de ellas para compensar. –

+0

@NicolaiKant No me di cuenta de que era una cosa. – Erutan409

-1

Una forma rápida es ejecutar un comando jQuery en la consola del desarrollador. En cualquier navegador, presione F12 e intente acceder a cualquiera de los elementos.

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

enter image description here

-1

Usted puede simplemente escribir window.jQuery en la consola. Si devuelve una función (e, n) ... Entonces se confirma que el jquery está cargado y funciona correctamente.

Cuestiones relacionadas