javascript - 仅在模板生成的 html 列表中单击的项目的 Jquery 切换(可见/不可见)

标签 javascript jquery django-templates html-rendering

代码

  <ul>
    {% for item in lis %}
    <li>
      <div id="single-toggle">|Toggle|</div>
      <div class="visible-when-folded">
        <div class="name">{{ item.name }}</div>
        <div class="date">{{ item.date }}</div>
      </div>

      <div class="invisible-when-folded">
        <div class="about">{{ item.about }}</div>
        <div class="contact_info">{{ item.contact_info }}</div>
      </div>
    </li>
    {% endfor %}
  </ul>

示例输出代码

  • > |切换| 彼得 24-04-1990 一个友善的人 0474657434
  • > |切换| 玛莎 22-02-1984 一个了不起的女孩 0478695675
  • > |切换| 威廉 12-11-1974 一首老歌 0478995675

期望的行为

每当您点击 |Toggle| 时,我都希望看到 about(例如 A friendly guy) 和 contact_info(例如 0474657434)部分消失/重新出现。

尝试解决

$(function(){
  $("#single-toggle").click(
    function(){ $("div.invisible-when-folded").toggle(); } );
});

但不幸的是,这会切换列表中每一项的字段,而不仅仅是我点击的那一项。

编辑

views.py

from django.shortcuts import render_to_response
from django.template import RequestContext

def toggle(request):
    lis = [{'name':'Peter', 'date':'24-04-1990', 'about':'A friendly guy',
            'contact_info':'0474657434' }, 
          {'name':'Martha', 'date':'22-02-1984', 'about':'An amazing gal', 
            'contact_info':'0478695675' },
          {'name':'William', 'date':'12-11-1974', 'about':'An oldie', 
            'contact_info':'0478995675' }]

    return render_to_response('page.html', {'lis':lis},
      context_instance=RequestContext(request))

最佳答案

您需要将当前对象作为 context in the selector 传递获取与事件源对象相关的元素。您还需要使用 class 而不是 idgenerate unique ids for div with id = single-toggle 因为html元素应该具有唯一性ID。

Live Demo

我给了一个 id 为 class="single-toggle"的 div

改变

$("div.invisible-when-folded").toggle();

$("div.invisible-when-folded", this).toggle();

你的代码

$(function(){
  $("#single-toggle").click(
    function(){ $("div.invisible-when-folded", this).toggle(); } );
});

关于javascript - 仅在模板生成的 html 列表中单击的项目的 Jquery 切换(可见/不可见),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067543/

相关文章:

javascript - 如何在点击时显示隐藏的div

Django:如何强制翻译成模板内的给定语言?

django - 可重用 Django 应用程序中的基本模板

python /django : model object has no attribute 'prefetch_related'

javascript - 雅虎 gifshot javascript numframe 错误

javascript - 如何从 console.log 响应更新标签或按钮颜色

javascript - 除了 class、id 和 text 之外,我还能如何在 jQuery 元素中传递变量?

jquery - 如果表单在某些文本字段上具有验证,如何防止单击按钮上的 toast 消息?

javascript - 试图理解这个 location.href.match JS RegExp 部分

javascript - ECMA Script 5 规范如何允许成功解析大于 0xFF 的十六进制整数?