我正在关注本教程: http://www.javascripttoolbox.com/jquery/
我正在尝试获取由mySQL填充的表行以展开以显示详细信息。令人奇怪的是,firebug将行显示为隐藏(灰色),当我单击上面的行时,行将显示为灰色。问题是它们实际上并未隐藏在屏幕上。当我点击“父”行时,我可以看到该行向下移动几个px,但就是这样。
这是我的表:
<?php
while($row = mysql_fetch_array($result)){
?>
<tr class="parent" id="<?php echo $row['id'] ?>">
<td><?php echo $row['type'] ?></td>
<td><?php echo $row['description'] ?></td>
<td><?php echo $row['recorded_date'] ?></td>
<td><?php echo $row['added_date'] ?></td>
</tr>
<br />
<tr style="display: none;" class="child-<?php echo $row['id'] ?>"></tr>
<td> </td>
<td>2007-01-02</td>
<td>A short description</td>
<td>15</td>
</tr>
<br />
<?php
}
mysql_close();
?>
</table>
jQuery(标签上方):
$(function() {
$('tr.parent')
.css("cursor","pointer")
.attr("title","Click to expand/collapse")
.click(function(){
$(this).siblings('.child-'+this.id).toggle();
});
$('tr[@class^=child-]').hide().children('td');
});
答案 0 :(得分:3)
删除此行末尾的</tr>
:
<tr style="display: none;" class="child-<?php echo $row['id'] ?>"></tr>
您的“child-id#”行不包含单元格。因此点击时轻微移动。最后的</tr>
没有关闭任何标签,只是额外的。
可以删除表行之间的换行符。它们是多余的(和不正确的HTML)。 <tr></tr>
代码会自动从新行开始。