【发布时间】:2012-01-12 23:33:30
【问题描述】:
我在<p> 标签中有一个简单的img 标签,如果我点击img 或<p> 标签,内部div 应该是visible,如果我再次点击它应该是hide div。
我第一次让它工作,但如果我第二次点击img 或<P> 标签,图像会发生变化。
我不希望<p> 的背景图像应该改变我需要它作为img 标签。
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery(".content").hide();
//toggle the componenet with class msg_body
jQuery(".heading").click(function () {
var $this = $(this),
$contentArea = $this.next('.content');
if (!$contentArea.hasClass('active')) {
$this.find('img').attr("src", "img/Minus.png");
$(".content.active").slideToggle(500).removeClass('active');
$contentArea.slideToggle(500).addClass("active");
}
else if ($contentArea.hasClass('active')) {
$this.find('img').attr("src", "img/Plus.png");
$(".content.active").slideToggle(500).addClass('active');
}
});
});
</script>
这就是我展示它的方式:
<div class="layer1">
<p class="heading"><img src="img/Plus.png" alt="" style="margin:0 5px 0 0;" /></p>
<div class="content"></div>
<p class="heading"><img src="img/Plus.png" alt="" style="margin:0 5px 0 0;" /></p>
<div class="content"></div>
<p class="heading"><img src="img/Plus.png" alt="" style="margin:0 5px 0 0;" /></p>
<div class="content"></div>
<p class="heading"><img src="img/Plus.png" alt="" style="margin:0 5px 0 0;" /></p>
<div class="content"></div>
</div>
这是我的fiddle
【问题讨论】:
-
我不知道这是否重要,但属性应该用引号引起来。
<div class="content"></div> -
@Rocket-Sorry 忘记在我引用的代码中保留实际值..
-
您是否希望一次只显示一个 div?
-
@Connum-不需要。我认为如果我同时保持所有可见性会很好看,如果它给我带来更多问题,那么我绝对不会。