你在混合客戶端和服務器端代碼。當點擊事件發生時,您在客戶端和服務器端代碼已經運行並完成。
您可以在隱藏的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