У меня есть следующая таблица, динамически генерируемая из представления. Мне нужно добавить событие click на class=heading
, чтобы показать или скрыть class=content
.jQuery slideToggle() не работает
<table>
<thead>
<tr>
<th class="thead">Function</th>
<th class="thead"">Type</th>
@foreach (var item in Model.PackageNames)
{
<th class="thead">
@item
</th>
}
</tr>
</thead>
<tbody>
@foreach (var item in Model.PrivilegeGroups)
{
<tr>
<td colspan="50">
<div class="heading">
@item.Name
</div>
</td>
</tr>
<text>
<p class="content">
@foreach (var privilege in item.Privileges.Values)
{
<tr>
<td>
@privilege.Name
</td>
<td>
@privilege.Type.ToString()
</td>
@foreach (var package in privilege.Packages)
{
<td>
@package.AccessLevel.ToString()
</td>
}
</tr>
}
</p>
</text>
}
</tbody>
</table>
Это jQuery, который я использую, однако это не сработает.
<script type="text/javascript">
$(document).ready(function() {
$(".heading").click(function() {
$(this).next(".content").slideToggle(500);
});
}); // -- End Ready
</script>
Однако $('.content').slideToggle();
делает работу и переключает все элементы с class=content
. Я хочу скрыть только следующий элемент. Как мне заставить работать?
Спасибо.
У вас есть неверный и недействительный HTML. В 'tbody' вы можете иметь только' tr', а внутри - 'th' или' td'. – ahren