报错ReferenceError: EnjoyHint is not defined,请求技术协助解决
解决 ReferenceError: EnjoyHint is not defined 问题
可能的原因及修复步骤
1. 确认依赖引入顺序与方式
EnjoyHint 依赖 jQuery,必须保证 jQuery 先于 EnjoyHint 加载:
- 脚本标签引入场景:
<!-- 先加载 jQuery --> <script src="path/to/jquery.min.js"></script> <!-- 再加载 EnjoyHint 的 JS 和 CSS --> <script src="path/to/enjoyhint.min.js"></script> <link rel="stylesheet" href="path/to/enjoyhint.css"> - 模块化项目(Webpack/Vite 等)场景:
正确导入并按需挂载全局对象:import $ from 'jquery'; import EnjoyHint from 'enjoyhint'; import 'enjoyhint/enjoyhint.css'; // 部分版本需手动挂载到全局 window.jQuery = $; window.EnjoyHint = EnjoyHint;
2. 检查版本兼容性
尝试安装稳定兼容的版本组合:
npm install jquery@3.x enjoyhint@latest --save
jQuery 3.x 与当前 EnjoyHint 版本兼容性更稳定。
3. 验证全局对象是否加载成功
在调用 new EnjoyHint() 前,打开浏览器控制台执行 console.log(window.EnjoyHint):
- 若输出
undefined,说明库未正确加载:- 检查打包配置是否将 EnjoyHint 排除在全局环境外(如 Webpack 的
externals配置) - 确认 EnjoyHint 文件路径正确,无404加载失败情况
- 检查打包配置是否将 EnjoyHint 排除在全局环境外(如 Webpack 的
4. 确保代码在 DOM 就绪后执行
将初始化逻辑放在 DOM 加载完成的事件回调中:
document.addEventListener('DOMContentLoaded', () => { // 调用你的 initiate 方法或相关代码 });
补充提示
你的代码中使用了 jQuery 操作(如 $(".enjoyhint")),需同步确认 jQuery 已正确全局挂载或导入使用。
内容的提问来源于stack exchange,提问作者Rohit tdr
相关产品推荐
相关产品推荐

