TypeError: ‘undefined’ no es una función (evaluando ‘$ (document)’)

  1. Estoy usando un sitio de WordPress.
  2. Estoy incluyendo esta secuencia de comandos en el encabezado.

Cuando se carga el script, obtengo este error:

TypeError: ‘undefined’ no es una función (evaluando ‘$ (document)’)

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

En firebug, entiendo esto:

$ no es una función

WordPress usa jQuery en modo noConflict de manera predeterminada. Necesita referenciarlo usando jQuery como el nombre de la variable, no $ , por ejemplo, use

 jQuery(document); 

en lugar de

 $(document); 

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

 (function ($) { $(document); }(jQuery)); 

Use noConflict de jQuery. 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

  

Utilizar esta:

 var $ =jQuery.noConflict(); 

Prueba este fragmento:

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

Me funcionó, tal vez te ayude también.

Tuve este problema solo en Chrome.

Intenté agregar

 var $ =jQuery.noConflict(); 

justo antes de llamar

 $(document).ready(function () { 

Funcionó.

Muchas gracias

También compruebe si incluye jQuery, seguido de algunos componentes / otras bibliotecas (como jQuery UI) y luego de forma accidental, incluyendo jQuery: esto redefinirá jQuery y eliminará los componentes auxiliares (como .datepicker) de la instancia.

  ;(function($){ // your code })(jQuery); 

Coloque su código js dentro del cierre anterior, debería resolver el problema.

Yo usaría esto

 (function ($) { $(document); }(jQuery)); 

También me he enfrentado a tales problemas muchas veces en el desarrollo web portador. En realidad, no es un conflicto JS. Cuando cargamos el sitio web html en el navegador, no enfrentamos ese error, pero cuando cargamos este tipo de sitio web a través de localhost nos enfrentamos a ese problema. Eso es debido a localhost. Cuando cargamos scripts a través del localhost, escanea el script y procesa el resultado. Pero cuando no usamos localhost. Simplemente escanea la salida. Ejemplo, cuando escribimos el código php pone el localhost y ejecutamos sin host obtenemos un error. Pero si el código es correcto y se ejecuta a través del host, obtenemos la salida real, y cuando utilizamos el elemento inspeccionar obtenemos el código de salida en formato HTMl pero no en formato PHP, esto se debe a la representación del código.

Esto es un error de renderizado Entonces, para solucionar estos errores de código jquery, una de las soluciones puede estar usando este método.

 jQuery(document).ready(function($){ /******** Body of Jquery Code*****/ }); 

Lo que este código hace es registrar ‘$’ como varible para la función aplicando jquery. De lo contrario, el archivo .js solo se lee como javascript.

Me encontré con este problema también al incluir jQuery en el encabezado de mi página, sin darme cuenta de que el host ya lo estaba incluyendo en la página automáticamente. Cargue su página en vivo y verifique la fuente para ver si jQuery está siendo enlazado.

Dos cosas:

  1. Asegúrese de tener una biblioteca jQuery agregada, antes de su $ (documento).
  2. Luego simplemente cambie todo “$” con: jQuery, como los comentarios anteriores.

envolver todo el script entre esto …

  

Muchas bibliotecas de JavaScript usan $ como una función o nombre de variable, al igual que jQuery. En el caso de jQuery, $ es solo un alias para jQuery, por lo que toda la funcionalidad está disponible sin usar $. Si necesita usar otra biblioteca de JavaScript junto con jQuery, devuelva el control de $ a la otra biblioteca con una llamada a $ .noConflict () . Las referencias antiguas de $ se guardan durante la inicialización de jQuery; noConflict () simplemente los restaura.

Puede usar tanto jQuery como $ en el siguiente fragmento. funcionó para mí

 jQuery( document ).ready(function( $ ) { // jQuery(document) // $(document) }); 

Puede pasar $ en la función ()

 jQuery(document).ready(function($){ // jQuery code is in here }); 

o puede reemplazar $(document); con este jQuery(document);

o puede usar jQuery.noConflict()

 var jq=jQuery.noConflict(); jq(document).ready(function(){ jq('selector').show(); });