TypeError: 'indefinido' no es una función (evaluando '$(document)')

Resuelto dcolumbus asked hace 13 años • 14 respuestas
  1. Estoy usando un sitio de WordPress.
  2. Estoy incluyendo este script en el encabezado.

Cuando se carga el script, aparece este error:

TypeError: 'indefinido' no es una función (evaluando '$(document)')

No tengo idea de qué lo está causando o qué significa.

En Firebug me sale esto:

$ no es una función

dcolumbus avatar Nov 02 '11 09:11 dcolumbus
Aceptado

Wordpress usa jQuery en modo noConflict de forma predeterminada. Debe hacer referencia a él usando jQuerycomo nombre de variable, no $, por ejemplo, usar

jQuery(document);

en lugar de

$(document);

Puede resumir esto fácilmente en una función autoejecutable para que $haga referencia a jQuery nuevamente (y también evite contaminar el espacio de nombres global), por ejemplo

(function ($) {
   $(document);
}(jQuery));
El Yobo avatar Nov 02 '2011 02:11 El Yobo

Utilice jQuery noConflict. Me hizo maravillas

var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
    example('span#resultado').text("Hello, dude!");
    });
});

Es decir, suponiendo que haya incluido jQuery en su HTML

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
Leno Britto avatar Jul 10 '2012 23:07 Leno Britto

Pruebe este fragmento:

jQuery(function($) {
  // Your code.
})

A mí me funcionó, tal vez a ti también te ayude.

Gurpreet Dhanoa avatar May 02 '2014 07:05 Gurpreet Dhanoa