2010-01-16 16 views
16

estoy recibiendo el siguiente error

Uncaught TypeError: Property ' $ ' of object [object global] is not a function in line 2:

usando el siguiente código:

$(document).ready(function() { 
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } }); 
    $('#featuredvid > ul').tabs(); 
}); 

El problema aparece únicamente local en 127.0.0.1, mientras mismo código OK online! Estoy deslumbrado, ¿alguna idea?

+0

línea 2: es $ (pestañas ..) de $ (documento) .rea dy (function() { \t $ ('# tabs> ul'). pestañas ({fx: {opacity: 'toggle'}}); \t $ ('# featuredvid> ul'). Pestañas(); }); – Olivers

+0

Parece que jQuery no está cargado. – Gumbo

+0

¿cómo puedo averiguarlo? – Olivers

Respuesta

1

Puede ser una configuración de seguridad del navegador, bloqueando JS para ejecutarse localmente, ¿está utilizando IE por casualidad? Pruebe con Firefox o juegue con su configuración de seguridad en IE

+0

gracias, pero no es el caso ... tratando de w. FF y Chrome solo por cierto. – Olivers

2

¿Está jquery disponible localmente? (El error que mencionas por lo general significa que el jQuery no está disponible - cargado)

Tal vez va a cargar desde una ruta relativa y la estructura es diferente a la versión en línea ..

+0

no, la misma ruta absoluta usando stg como en el encabezado Olivers

0

Podría ser la versión de jQuery o algo por el estilo. Tenía este problema exacto: estaba usando una copia local de jQuery (versión 1.3.2) y luego cambié al http://code.jquery.com/jquery-latest.pack.js y de repente funcionó (lo último en ese momento era 1.4.1).

También tuve algunos de los problemas que mencionó sobre "Recurso interpretado como script pero transferido con texto tipo MIME/plain". Creo que es seguro ignorar este problema en particular, ya que todavía aparece para mí a pesar de que mi javascript está funcionando ahora.

16

Compruebe si alguna otra secuencia de comandos que está utilizando está llamando al jQuery.noConflict(). Al hacerlo, se libera el enlace $, lo que provoca que el símbolo $ no esté definido.

Una forma de solucionar este problema es añadir $ como el primer parámetro de la función de devolución de llamada:

$(document).ready(function($) { 
    ... 
} 

Esto funciona porque el objeto global jQuery se pasa como primer parámetro a un controlador .ready(). Véase también http://api.jquery.com/ready/

+2

Gracias por señalar el conflicto '.noConflict()' – garromark

35

Me encontré con este error cuando estaba tratando de usar el slide effect que pensé que era parte de jQuery, pero en realidad era un efecto jQuery UI. Esta fue la salida de mi consola:

Uncaught TypeError: Property '#<Object>' of object #<Object> is not a function 

Por lo tanto, me parece que sólo tiene que incluir la librería jQuery UI. Agregue esta línea después de incluir jQuery.

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
+0

Este era exactamente mi problema. 5 minutos desperdiciados :) – codinghands

+0

En mi caso era un gremlin - ¡un personaje escondido! – 3zzy

+0

Ese fue mi problema también. Gracias por la ayuda. –

11

Use este lugar:

jQuery(document).ready(function($){ 
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } }); 
    $('#featuredvid > ul').tabs(); 
}); 
6

que tenía más o menos el mismo problema.El mensaje de error dice

TypeError: $ is not a function 
$(document).ready(function() { 

la línea en mi código que fue error de tiro es la siguiente:

$(document).ready(function(){ 

En mi caso, el problema es que $ no se reconoce como jQuery. Tuve que reemplazar $ con la palabra clave jQuery. Así que finalmente cambié mi código como este:

jQuery(document).ready(function(){ 

Y funcionó.

3

Tengo el mismo error y resolverlo mediante la adición de

var $ = jQuery; 

como var global sobre mi guión

1

Simplemente, utilice la siguiente:

jQuery(function() { 
    //Your code when document will be ready 
}); 
0

La desactivación del bloqueador de elementos emergentes trabajado para mí

Cuestiones relacionadas