【发布时间】:2018-03-25 14:51:25
【问题描述】:
我开始着手开发一个 Django 应用程序。我想要两个不同的视图,当用户单击屏幕上的一个选项卡时它们会动态切换。这基本上是我所拥有的:
base.html:
<head>
<script type="text/javascript" src="/static/base.js"></script>
</head>
<body>
<div class="tab">
<button class="tablinks" onclick="changeTab(event, 'teams')">Teams</button>
<button class="tablinks" onclick="changeTab(event, 'scenarios')">Scenarios</button>
</div>
<div class="content container">
<div class="tab-options">
<div class="teams-tab" id="teams-tab">
{% block teams %}
{% endblock %}
</div>
<div class="scenarios-tab" id="scenarios-tab">
{% block scenarios %}
{% endblock %}
</div>
</div>
</div>
</body>
teams.html:
{% extends "./base.html" %}
{% block teams %}
<body>
<form action="{% url 'webapp:results' %}" method="get">
<h1>You are on the teams page!</h1>
<input type="submit" name="submit" value="Get Results!"><br>
</form>
</body>
{% endblock %}
index.html:
{% extends "./base.html" %}
{% block scenarios %}
<body>
<form action="{% url 'webapp:results' %}" method="get">
<h1>You are on the scenarios page!</h1>
<input type="submit" name="submit" value="Get Results!"><br>
</form>
</body>
{% endblock %}
base.js:
function changeTab(event, tab) {
tabcontent = document.getElementsByClassName("tab-options");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
if (tab == "teams") {
document.getElementById("teams-tab").style.display = "block"
} else if (tab == "scenarios") {
document.getElementById("scenarios-tab").style.display = "block"
}
}
不幸的是,这似乎不起作用。当页面最初加载时,我看到“场景”块按预期填充,但是一旦我单击选项卡,块就会消失,我只剩下 base.html 中的内容。有没有更好的方法在这些选项卡之间切换?我现在尝试这样做的方式有什么问题?
【问题讨论】:
标签: javascript html django django-templates