首页 > 解决方案 > Django按钮类forloop触发javascript

问题描述

我在Django模板中有forloop,如果条件包含true,我想为元素制作按钮,以将附加信息显示为信息框或弹出窗口。最好的方法是 javascript,但是如何分别触发每一个呢?我不知道会有多少按钮。我可以使用forloop计数器,但是如何激活js呢?

{% for hist in histor %}
<a class="trigger_popup_{{ forloop.counter }}"><img src='{% static "images/info.PNG" %}'></a>
{% if hist.ikona == 1 %} <img src='{% static "images/hist/108.png" %}'>
{% elif hist.ikona == 2 %} <img src='{% static "images/hist/154.png" %}'>
{% elif hist.ikona == 8 %} <img src='{% static "images/hist/499.png" %}'>
{% endif %}
{% endfor %}

在此添加什么:

var modal = document.getElementById("trigger_popup_");

按钮/链接类可能是 trigger_popup_4、trigger_popup_5、trigger_popup_88 这个如何管理?

标签: javascriptdjangofor-looptriggerspopup

解决方案


一种可能的解决方案是在带有事件处理程序的元素中使用数据属性

{%for i in list%}
  <a href="javascript:void(0);" data-id="{{i.id}}" class="triggermodal">somelink</a>
{%endif%} 

<script>
  $("body").on("click",".triggermodal",function(){
    var modalid=$(this).attr("data-id");
    $("trigger_popup_"+modalid).modal("toggle");/toggles the modal
  });
</script>

推荐阅读