我有一个脚本,点击时会显示更多信息,再次点击它会隐藏信息。问题是,当点击它时,它显示并隐藏具有相同类名的所有div的信息,而不是仅显示被点击的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 :(得分:0)
在点击处理程序中使用关键字this
。
<script type="text/javascript">
$(document).ready(function(){
$(".toggle").click(function(){
$(this).slideToggle("slow");
});
});
</script>
这会将click处理程序应用于具有类.toggle
的所有元素,但仅对导致该事件的特定元素执行。
答案 1 :(得分:0)
只需用此替换脚本即可。如果它不起作用将$(this)替换为$ this。它应该工作。
<script type="text/javascript">
$(document).ready(function(){
$(".toggle").click(function(){
$(this).next().slideToggle("slow");
});
});
</script>
答案 2 :(得分:0)
看起来你正试图用hiddenDiv
类来切换下一个兄弟的风格。
您可以使用.next
获取与选择器匹配的元素的下一个兄弟:
$myEl.next('.hiddenDiv');
由于您正在寻找单击按钮的下一个兄弟,您可以在点击处理程序中使用this
来获取按钮。
$(document).ready(function(){
$(".toggle").click(function(){
$(this).next(".hiddenDiv").slideToggle("slow");
});
});