jquery单击for循环中的函数仅在最后一个循环中工作

时间:2013-10-26 11:59:41

标签: javascript jquery for-loop click

我可能做了一些明显不对的事,但我看不到它。我正在尝试使用for循环来定义多个单击事件,并且遇到意外结果。其中一些是有效的(隐藏和显示在功能的开头,但两个部分最终针对循环中的第二项。有人可以看看这个并告诉我我做错了什么?谢谢你非常适合你的帮助!

这是链接: http://grana.us/test/expand2.html

1 个答案:

答案 0 :(得分:1)

您正在为每个ID的所有摘要分配相同的事件。这是错误的......

首先......隐藏所有细节并显示所有toglers只需使用:

$('.details').hide();
$('.toggler').show();

然后为所有sumaries定义click函数:

$('.summary').click(function(){
   if($('.toggler',this).html() == ' -'){
      $('.toggler',this).html(' +');
      $('.details',$(this).parent()).hide();
   }else{
      $('.toggler',this).html(' -');
      $('.details',$(this).parent()).show();
   }
});

把所有东西都放进去......

$(function(){
   ...
});

应该没问题。