您正在混合客户端和服务器端代码。当点击事件发生时,您已经在客户端并且服务器端代码已经运行并完成了。
您可以隐藏部分视图,div
然后在单击事件中取消隐藏它。类似的东西,也许是:
<table>
@foreach (var a in annotations)
{
<tr>
<td>
<label>@a.Title</label>
<div style="display:none;">@Html.RenderPartial("Go", a)</div>
</td>
</tr>
}
</table>
<script type="text/javascript">
$(function () {
$('table tr td label').click(function () {
$(this).closest('td').find('div').show();
});
});
</script>
可能有一种更优雅的方法可以div
在 jQuery 选择器中找到正确的选择器,您可以根据需要向 DOM 元素添加类和 id 以使其更清洁。如果您有很多这些表行,那么我还建议使用 jQuery.on()
函数来绑定单击事件,因为它会执行得更好。像这样的东西:
<script type="text/javascript">
$(function () {
$('body').on('click', 'table tr td label', function () {
$(this).closest('td').find('div').show();
});
});
</script>
这会将单个单击事件绑定到 DOM 而不是很多,另外还有一个好处是动态添加的行在绑定发生后仍会处理该事件。