javascript - 将 jQuery 放在 HTML 模板的底部是不灵活的

标签 javascript jquery templates

我一直在重构一些模板,并将 jQuery 代码的链接放在模板文件的底部,以保持页面加载速度快。

我还有一些仅在特定页面上使用的 javascript 模块,因此我不会将它们包含在主模板中,而是包含在内容中。

这是模板的外观......

<html>
    <head>
    </head>
    <body>

        <!-- navigation -->
        <nav></nav>
        <!-- end navigation -->

        <!-- main content -->
        <?php $this->load->view($module . '/' . $view_file); ?>
        <!-- end main content -->

        <!-- footer -->
        <footer></footer>
        <!-- end footer -->

        <!-- javascript dependencies -->
        <script src="<?php echo base_url('bower_components/jquery/dist/jquery.min.js'); ?>"></script>

    </body>
</html>

如果我将自定义 js 代码添加到模板内的特定页面,如下所示:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>

        <!-- navigation -->
        <nav></nav>
        <!-- end navigation -->

        <!-- main content -->
        <?php $this->load->view($module . '/' . $view_file); ?>
        <!-- end main content -->

        <script src="some custom js that uses jQuery"></script>

        <!-- footer -->
        <footer></footer>
        <!-- end footer -->

        <!-- javascript dependencies -->
        <script src="<?php echo base_url('bower_components/jquery/dist/jquery.min.js'); ?>"></script>

    </body>
</html>

我收到错误

ReferenceError: $ is not defined

那么我是否必须将 jQuery 和其他依赖项放在文档头中,还是有其他方法?

最佳答案

您收到此错误是因为脚本在 jQuery 加载之前运行,因此它是未定义的。

要解决此问题,只需将自定义脚本放在 jQuery 导入下方的行中,它就应该可以工作。

或者,将 jQuery 导入放在页面的较高位置,这样它始终位于您的自定义脚本上方,并且它将起作用。

关于javascript - 将 jQuery 放在 HTML 模板的底部是不灵活的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246958/

相关文章:

jquery - 使用 jquery 禁用页面上除特定 div 中的控件之外的所有控件

c++ - 带函数指针的模板推导还原

php - 在php中将数据从新窗口发送到上一个窗口

javascript - 为什么在 JavaScript 中使用 TypeScript 类需要 `.default` ?

javascript - 你会怎么写一个 "constructor"

jquery - Zingchart - 按 ID 添加和删除绘图

javascript - JQuery Draggable Droppable 和 Sortable 同时用于 DOM 操作

javascript - Angular 4/无法通过id从数组中检索数据

c++ - Variadic 模板参数总是必须放在最后吗?

c++ - 检查类模板是否已实例化?