これは誰かにとってとても簡単なものになるはずです-slideToggle
画像がクリックされたときに表示されるテーブル行があります。テーブルは動的であるため、行はいくつでも存在する可能性があるため、クラス名で表示/非表示にする領域を特定する必要がありました。
問題ない。extrainfo
ただし、一度に表示されるdivのインスタンスは1つだけです。示されているように、すでに表示されているものはすべて非表示にする必要があります。
編集:ここにフィドルがあります:http://jsfiddle.net/shpsD/
以下にHTMLを追加しました。
var toggleSpeed = 300;
var expandImg = "../Images/expand.png";
var collapseImg = "../Images/collapse.png";
$(".moreless").click(function () {
var detailsRow = $(this).parent().parent().next();
detailsRow.find('.extrainfo').slideToggle(toggleSpeed);
if ($(this).attr('src') == collapseImg) {
$(this).attr('src',expandImg);
$(this).closest('tr').removeClass('highlight_row');
}
else {
$(this).attr('src',collapseImg);
$(this).closest('tr').addClass('highlight_row');
}
});
});
-
<table>
<tr>
<th>Header</th>
<th></th>
</tr>
<tr>
<td>row 1</td>
<td><img src="expand.png" class="moreless" /></td>
</tr>
<tr>
<td colspan="2">
<div class="extrainfo">
EXTRA INFO!!
</div>
</td>
</tr>
<tr>
<td>row 2</td>
<td><img src="expand.png" class="moreless" /></td>
</tr>
<tr>
<td colspan="2">
<div class="extrainfo">
EXTRA INFO!!
</div>
</td>
</tr>
</table>