Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery放在HTML模板的底部是不灵活的_Javascript_Jquery_Templates - Fatal编程技术网

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

Javascript 将jQuery放在HTML模板的底部是不灵活的,javascript,jquery,templates,Javascript,Jquery,Templates,我已经重新分解了一些模板,并将jQuery代码的链接放在模板文件的底部,以保持页面加载速度 我也有一些javascript模块,我只在特定页面上使用,所以我不在主模板中包含这些模块,而是在内容中包含这些模块 以下是模板的外观 <html> <head> </head> <body> <!-- navigation --> <nav></nav>

我已经重新分解了一些模板,并将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>

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

您会遇到此错误,因为脚本在加载jQuery之前运行,因此它未定义

要解决这个问题,只需将自定义脚本放在jQuery导入下面的行中,它就可以工作了


或者,将jQuery导入放在页面的更高位置,使其始终位于自定义脚本之上,并且可以正常工作。

在使用任何jQuery代码之前,应该加载jQuery,因此文件需要位于代码之上。这就是为什么它通常放在标题中。问题是,这就是为什么它不灵活。。。我必须在每个页面上包含每个js代码段,即使该代码段在一个页面上使用。。。我只想在一个页面上包含代码片段……实际上,您需要做的只是确保jQuery在代码片段之前加载,例如在页面顶部加载它。如果您觉得这样做真的很烦人,您可以将jQuery割断,然后用普通JavaScript编写所有代码段!从不好的,所以我需要在我的主要内容之前包含我的jQuery。是的,这会帮你解决问题。事实上,如果你关心页面加载速度,它不会有很大的影响。缩小后的jQuery只有85kb,因此比平均图像的大小小。与本机大小过大的未压缩图像相比,在页面中加载得更高对加载速度的影响很小!希望有帮助
<!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