好的,将问题重做为更简单的问题。
这是我的HTML代码。
<p>
<span id="tripTitle">Trip #1</span>
<span class="expandicon" style="display:none;">
<span class="flip">
<img class="expand" src="img/expand1.png" />
</span>
</span>
<span class="shrinkicon">
<span class="flip">
<img class="shrink" src="img/shrink1.png" />
</span>
</span>
</p>
<div class="panel"><table id="table" width="100%">
some text here.
</div>
这是Java:
$(document).ready(function(){
$(".flip").click(function(){
$(".panel").slideToggle("slow");
});
HTML将在单个页面中或每次创建的Trip中重复10次。 javascript代码将使用类“panel”切换所有div。问题是:有没有办法让切换的唯一div是点击“翻转”类的图像最近或旁边的那个?
顺便说一下,这是一个jsfiddle。 http://jsfiddle.net/LyUnB/
答案 0 :(得分:2)
使用
$(this).parent().nextAll(".panel:eq(0)").slideToggle("slow");
.panel
是.flip
答案 1 :(得分:2)
或者你可以简单地使用
$(document).ready(function(){
$(".flip").click(function(){
$(this).parent().next(".panel").slideToggle("slow");
});
});
你在另一个范围内有扩展,缩小按钮,所以当你在jQuery中检查.next()
它没有找到'.panel'
时,我们使用parent()
后退一步然后{ {1}}会将我们带到.next()
div
谢谢
答案 2 :(得分:1)
尝试:
$(document).ready(function(){
$(".flip").click(function(){
$(this).closest(".shrinkicon").next(".panel").slideToggle("slow");
});
});
修改强>
在我的系统上运行正常。以下是jsfiddle
的工作示例