jQuery仅在父div中使用类切换元素

时间:2010-06-03 12:03:53

标签: php jquery web-applications toggle

过去两天,我一直在我的桌子上打我的头。我正在制作一个应用程序,显示来自数据库的信息,标题/链接,缩略图和保存时间,包含在无序列表中,如下所示:http://blog.madebycraig.com/images/full.jpg
我要做的是在元素上有一个最小化按钮,切换缩略图和保存的时间:http://blog.madebycraig.com/images/minimized.jpg我可以完成这个,但它是全部或全部。我点击一个最小化按钮,一切顺利。我如何才能包含它只是切换具有某个类名的项目,这些类名是最小化按钮所在的div的子项?我试过.parent(),.child(),. next(),. prev()。我已经把所有东西扔到了我知道的地方。现在我转向你,亲切的先生(或女士们)。我究竟做错了什么?这是我试图运行它的ul。

echo'
<li class="bookmarkContainer">
<a href="'.$row['url'].'" class="toggle"><img class="thumb" src="images/placeholder.png" /></a>
<div class="title"><a href="'.$row['url'].'" class="bookmrk" target="_blank">'.$row['title'].'</a></div>
<div class="dt toggle">'.relativeTime($row['dt']).'</div><br />
<a class="collapse" href="#">hide</a>
<a class="delete" href="?delete='.$row['id'].'" id="'.$row['id'].'">Delete Bookmark</a>
</li>';

1 个答案:

答案 0 :(得分:4)

你可以使用.closest().find()这样做:

$(".collapse").click(function() {
  $(this).closest('.bookmarkContainer').find('.toggle').toggle();
});

如果您有很多这些,或者他们正在通过ajax进行更改(看起来像搜索结果),请使用.live().delegate(),如下所示:

$(".collapse").live('click', function() {
  $(this).closest('.bookmarkContainer').find('.toggle').toggle();
});
//or...
$("#ulID").delegate('.collapse', 'click', function() {
  $(this).closest('.bookmarkContainer').find('.toggle').toggle();
});