You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在base模板加载jQuery完成后执行child模板内的JavaScript代码

解决方案

推荐优先使用新增模板块的规范方案,无需额外监听事件,性能和可维护性最好。

方案1:新增页脚脚本专属Block(推荐)

步骤1:修改base模板

在jQuery引入代码的下方新增一个空的块,专门用来放置各个子模板的专属脚本:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    .
    .
</head>
<body>
{% block content %}

{% endblock %}
<script src="path/to/jQuery/library"></script>
<!-- 新增脚本块,位置在jQuery加载之后 -->
{% block extra_script %}{% endblock %}
</body>
</html>

步骤2:调整child模板的脚本位置

把原本写在content块里的专属脚本,移到新增的extra_script块中即可:

{% extends 'base_template.html' %}
{% block content %}
<h1>How you doing?</h1>
{% endblock %}

{% block extra_script %}
<script type="text/javascript">
   // 该代码仅为当前模板专属,不会在其他模板使用
   // 此时jQuery已经加载完成,可以正常调用
   $(function() {
       // 写入业务逻辑即可
   })
</script>
{% endblock %}

方案2:监听DOM加载事件(无需修改base模板)

如果不方便修改base模板的结构,可以直接在child模板的脚本中监听DOMContentLoaded事件,该事件触发时整个DOM已经渲染完成,base模板末尾的jQuery已经加载执行完毕:

{% extends 'base_template.html' %}
{% block content %}
<h1>How you doing?</h1>

<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
    // 此处可以正常调用jQuery
    console.log($)
})
</script>
{% endblock %}

内容的提问来源于stack exchange,提问作者asprin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:24:02