我有一些页面脚本会产生恒定的ReferenceError:$未定义
错误。
jQuery 加载在 html 页面底部标记之前。我添加了一个 DOM 监听器,以便代码可以等待 JQuery 加载。你能看到什么问题吗,代码如下。
Webpack 配置:
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
console.log 1 有效,console.log 2 无效
{literal}
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function(event) {
console.log('DOM loaded and parsed 1'); // Works!
if ($('.add-user').length) {
const addUser = (callbackFunction) => {
const data = {
signup_name: $('#signup-name').val(),
user_name: $('#user-name').val(),
};
console.log(data);
callbackFunction();
return data;
}
}
console.log('DOM fully loaded and parsed 2'); // Doesn't Work?
});
</script>
{/literal}
最佳答案
确保您已添加 jQuery <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
这可能位于页面的 HEAD 或页脚中,只需确保在尝试调用任何其他 jQuery 内容之前加载它即可。
如果仍然出现错误,请尝试添加 var $ = jQuery
。应该可以正常工作。
关于javascript - 如何解决 Smarty 中的 jQuery 加载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820187/