2012-08-14 167 views
1

我有一个脚本,显示更多的信息,当点击时,当再次点击它隐藏信息。问题是,点击时,它会显示并隐藏所有div的信息,而不是只有被点击的那个。我环顾四周,我会认为我需要在它的某处添加“this”,这样它才会影响点击的对象。有人可以解释我做错了什么,以及如何实现这种效果?针对个人班级功能而不是整个班级组

的Javascript

<script type="text/javascript"> 
    this$(document).ready(function(){ 
    $(".toggle").click(function(){ 
     $(".hiddenDiv").slideToggle("slow"); 
     }); 
    }); 
    </script> 

HTML

 <span class="toggle" onClick='return false'> 
      <h4 class='arrow'>Group Health Insurance</h4> 
     </span> 

     <div class='hiddenDiv'> 
      <p><img src="../images/group.jpg" border="0" alt="Group Insurance" align="left" hspace="5" />Group health insurance coverage is a policy that is purchased by an employer and is offered to eligible employees of the company blah blah blah</p> 
     </div> 
     <hr /> 
     <span class="toggle" onClick='return false'> 
      <h4 class='arrow'>Insurance</h4> 
     </span> 

     <div class='hiddenDiv'> 
      <p><img src="../images/group.jpg" border="0" alt="Group Insurance" align="left" hspace="5" />More info about other types of insurance blah blah blah</p> 
     </div> 
     <hr /> 

感谢您的帮助提前!

回答

0

它看起来像你想切换与hiddenDiv类下一个同级的风格。

可以使用.next得到一个选择相匹配的元素的下一个兄弟:

$myEl.next('.hiddenDiv'); 

既然你正在寻找按钮的下一个兄弟被点击,就可以使用this单击处理中获取按钮。

$(document).ready(function(){ 
    $(".toggle").click(function(){ 
     $(this).next(".hiddenDiv").slideToggle("slow"); 
    }); 
}); 
+0

感谢您向我展示这一点,我仍然在学习javascirpt,但知道我需要一个在这里,但不知道该把它放在哪里。 – 2012-08-17 13:06:02

0

在您的点击处理程序中使用关键字this

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $(".toggle").click(function(){ 
     $(this).slideToggle("slow"); 
     }); 
    }); 
    </script> 

这适用单击处理与类.toggle的所有元素,但只执行导致该事件的特定元素上。

0

用这个替换脚本。如果它不起作用,则将$(this)替换为$ this。它应该工作。

<script type="text/javascript"> 
     $(document).ready(function(){ 
      $(".toggle").click(function(){ 
       $(this).next().slideToggle("slow"); 
      }); 
     }); 
    </script>