javascript - 如何解决 Smarty 中的 jQuery 加载错误

标签 javascript jquery webpack smarty

我有一些页面脚本会产生恒定的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/

相关文章:

javascript - 仅当数据可用时,才在 vuejs 中条件渲染另一个元素或父元素

javascript - 将 Controller 代码转换为可重用指令

javascript - Strophe.js : checking internet connection

javascript - 为什么在滑动面板打开时标题文本会隐藏?

javascript - 即使在 stopPropagation 之后,mouseenter 事件也被调用了两次

symfony - 为什么 webpack encore 只在 dev 中需要

javascript - 无法设置未定义或空引用的属性 'wrap'

javascript - Vue.js 动态图像路径未加载

javascript - React Router v4.0 - 重定向到路由器范围之外的页面

javascript - 如何更改 div 文本中展开/折叠效果的方向?