你在混合客户端和服务器端代码。当点击事件发生时,您在客户端和服务器端代码已经运行并完成。
您可以在隐藏的div
中渲染局部视图,并在click事件中取消隐藏它。一些与此类似,也许是:
<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>
有可能是为了寻找在jQuery选择正确的div
一个更优雅的方式,根据需要,使之清洁可以或许添加class和id到DOM元素。如果你有很多这些表行,那么我还建议使用jQuery .on()
函数来绑定点击事件,因为它会表现得更好。事情是这样的:
<script type="text/javascript">
$(function() {
$('body').on('click', 'table tr td label', function() {
$(this).closest('td').find('div').show();
});
});
</script>
这一个单一的点击事件到DOM绑定,而不是多个,与额外的奖励动态添加的行仍然会处理事件的结合发生之后。
我刚刚将示例更改为新的示例。 – Tartori 2013-02-15 13:46:32