2010-06-03 57 views
1

在過去的兩天裏,我一直在毆打我的頭在我的桌子上。我正在製作一個應用程序,用於顯示來自數據庫的信息,標題/鏈接,縮略圖和保存在無序列表中的時間,如下所示:http://blog.madebycraig.com/images/full.jpg
我正在嘗試的是在元素上使用最小化按鈕,切換縮略圖和時間保存開啓和關閉:http://blog.madebycraig.com/images/minimized.jpg
我可以做到這一點,但它是全部或沒有。我點擊一個最小化按鈕,一切都結束了。我怎樣才能包含它只是切換具有最小化按鈕所在div的子級的特定類名稱的項目?我試過.parent(),.child(),.next(),.prev()。我已經把所有的東西都拋到了我知道的地步。現在我轉向你,善良的先生(或女士)。我究竟做錯了什麼?這是我試圖運行它的ul。只有父級div的jQuery切換元素

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>'; 

回答

4

可以使用.closest().find()這樣做:

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

如果你有大量的這些,或者他們通過AJAX改變(似乎是一個搜索resulty的事情),使用.live().delegate()是這樣的:

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

太棒了!非常感謝。這只是爲了說明我爲什麼是網頁設計師而不是網絡開發人員! – werm 2010-06-03 12:19:54