我有一个非常基本的基本和子页面样式实现。
当我点击child.html
中的按钮时,我的目标是显示用javascript编写的警报。问题是当我尝试在子页面中使用extra_js
时,javascript代码在子页面中不起作用。但是,当移动到base.html
时,相同的js块会运行。我错过了什么,为什么extra_ javascript
代码在子页面中不起作用?
base.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
{% comment %}
When I enable these lines, it works.Why??? it does not work in the child page???
<script>
function myfunction2(){
alert("The button is clicked in child page!");
}
</script>{% endcomment %}
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
child.html
{% extends "base.html" %}
{% block extra_css %}
<style type="text/css">
#mydiv{
height: 50px;
width:200px;
margin-top:5px;
border:2px solid;
}
</style>
{% endblock %}
{% block extra_js %}
<script>
function myfunction2(){
alert("The button is clicked in child page!");
}
</script>
{% endblock %}
{% block content %}
<h2>Child page</h2>
<div id="mydiv">
<p>
Some text goes here...
</p>
</div>
<input type="submit" class="field button" style="float: left; " name="submit" value="Submit" id="Submit1" onclick ="myfunction2();"> </input>
{% endblock %}
答案 0 :(得分:4)
您需要在{% block extra_js %}
中定义一个空的base.html
,然后Django将extra_js
的块child.html
的内容放置在块{父母。
base.html
应该是这样的:
<html>
<head></head>
<body>
...
<div id="content">
{% block content %}{% endblock content %}
</div>
{% block extra_js %}{% endblock extra_js %}
</body>
</html>