【发布时间】:2020-04-05 16:24:06
【问题描述】:
我正在使用 Django 框架编写网站,但我是这个网络框架的新手,我不知道如何在 Django 模板中使用 JavaScript。我只是想在点击时显示/隐藏列表的项目,但我只显示/隐藏第一个或最后一个项目。
我的代码:
{% for mysong in album.song_set.all %}
<li onclick=action()><a>CLICK ME</a></li>
<div id="{{mysong.id}}">
<h1>{{mysong}}</h1>
<img src="{{album.album_logo}}" width="300px"><br/>
<h2>Song: {{mysong.song_title}}</h2>
<h2>Artist: {{album.artist}}</h2>
<h2>
<audio controls>
<source src="{{mysong.audiotrack.url}}" type="audio/mpeg">
</audio>
</h2>
</div>
<script>
function action() {
var added_item_button = document.getElementById('{{mysong.id}}');
var actualDisplay = getComputedStyle(added_item_button).display;
if (actualDisplay == 'none') {
added_item_button.style.display = 'block';
} else {
added_item_button.style.display = 'none';
}
}
</script>
{% endfor %}
这就是我尝试显示/隐藏我迭代的列表项目的方式。但似乎,那是行不通的。谢谢,任何帮助将不胜感激。
【问题讨论】:
-
为什么要为每首歌曲创建相同的 JavaScript 函数?您可以在 javascript 函数中传递 div id 的参数,并根据该参数选择特定的 div。
标签: javascript django django-templates