【发布时间】:2014-07-02 14:18:30
【问题描述】:
我知道这个问题已经解决了很多次,这就是为什么我阅读了大多数已经在 * 上打开的关于这个问题的主题,但没有任何建议对我有帮助。
我有一个 div 元素列表,每个元素都包含一个超链接和一个带有附加信息的 span 元素。 span 元素最初是隐藏的,每次单击同级锚元素时都需要切换它们。
<div class="politician">
<a href="">
Антонијо Милошоски
</a>
<span class="additional" style="display: none">
2013ВМРО-ДПМНЕ1997-1
</span>
</div>
<div class="politician">
<a href="">
Силвана Бонева
</a>
<span class="additional" style="display: none">
2013ВМРО-ДПМНЕ1991-1
</span>
</div>
这是我编写的用于处理隐藏元素切换的 jQuery 代码:
$('.politician a').click(function (e) {
e.preventDefault();
var $this = $(this).parent().find('span');
$(".politician span").not($this).hide();
$this.toggle();
});
我的问题已经在标题中说明了。我希望显示隐藏的元素,但页面会被刷新。我想我使用 preventDefault() 方法的方式一定有问题。
编辑
这是生成 div.politician 元素的一段代码。
function populateList(politicians) {
var politlist = $("#list").html("");
for (var i in politicians) {
var person = politicians[i];
var politinfo = "<div class=\"politician\"><a href=\"\">" + person.name + " " + person.surname + "</a><span class=\"additional\" style=\"display: none\">" + person.lastserved;
for (var j in person.member)
{
var membership = person.member[j]
politinfo += membership.party + membership.enrol + membership.leave;
}
politinfo += "</span></div>";
$(politinfo).appendTo(politlist);
}
}
【问题讨论】:
-
代码看起来不错。 dom准备好了吗?您不会动态添加任何
div.politician元素吗? -
工作得很好 -> jsfiddle.net/Y3drb
-
@billyonecan 实际上我愿意。现在我正在编辑开篇文章以添加我用来生成元素的代码。
标签: javascript jquery html javascript-events event-handling