Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
$('#load') causa: Error de referencia no detectado: $ no está definido

Tengo el siguiente html:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="stylesheet" href="css/main.css" /> <script src="js/main.js"></script> </head> <body> <button type="button" class="btn btn-outline-warning" onclick='debugger;lazy_load( $("#load") )' >Primary</button> <div id="load"> <div data-lazy-load="ajax/data-ajax.json">Loading...</div> <div data-lazy-load="ajax/data-ajax.html">Loading...</div> </div> </body> </html>
 import { ajax_query } from "../common/ajax"; export function lazy_load( container ) { container ||= $('#load'); ... }

webpack.config.js tiene:

 plugins: config.scripts.isUseJquery ? [ new webpack.ProvidePlugin({ jQuery: "jquery", jquery: "jquery", $: "jquery", "window.jQuery": "jquery", "window.jquery": "jquery", "window.$": "jquery", }), ] : [], };

Cuando abro esta página, aparece un error de Uncaught ReferenceError: $ is not defined cerca de este código lazy_load( $("#load") ) .

Cuando elimino el parámetro $("#load") , el mismo código dentro lazy_load funciona bien.

¡Incluso cuando la ejecución del script se detiene en el debugger , puedo ejecutar $("#load") en la consola sin ningún error!

¿Por qué onclick='lazy_load( $("#load") )' no funciona?

UPD
ingrese la descripción de la imagen aquí

Cuando reemplazo onclick: onclick='lazy_load()' ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Al codificar con módulos, también debe importar jQuery explícitamente:

 import $ from "jquery"; import { ajax_query } from "../common/ajax"; export function lazy_load( container ) { container ||= $('#load'); ... }

De lo contrario, vea más soluciones posibles aquí:
Cómo importar jQuery en webpack

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para hacer $ global debo exponerlo.

Así que instalo expose-loader y ajusto mi webpack.config.js

 module.exports = { module: { rules: [ { test: require.resolve("jquery"), loader: 'expose-loader', options: { exposes: [ '$', 'jQuery' ] }, }, ], } }

Aviso: para el paquete web 5 hay un formato de configuración diferente, así que instalo la versión 1.0.3 expose-loader

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda