【发布时间】:2012-05-27 07:28:15
【问题描述】:
在 MVC 中,我通过迭代视图模型的“列表”在视图中构建了一个表。
@foreach(var item in Model)
{
<tr id="row-@item.name">
<td>
@item.type
</td>
<td >
@Html.ActionLink((string)item.name, "Download", "FileUpload", new { rout = item.rout, fileName = item.name }, null)
</td>
<td>
@item.size
</td>
<td>
<a href="#" id="delete-file" del-url="@item.delete_url">Delete</a>
</td>
</tr>
}
当我加载页面时,我会得到一个文件列表,每个文件都有一个“删除”链接。
我用 jQuery 实现了一个基本的“删除行”方法:
$('#delete-file').click(function() {
var delUrl = $(this).attr('del-url');
$.post(delUrl, null, removeRow(),'json')
});
function removeRow() {
$($('#delete-file').closest('tr')).fadeOut('slow');
}
当我在其中一个文件行上单击“删除”时,它运行良好,但是,如果我单击另一个(删除),则没有任何反应。服务器上没有文件被删除,并且该行没有被删除,就好像它被完全忽略了一样。
【问题讨论】:
-
你的 js 有错误。匿名函数未关闭,行未结束。 jsfiddle.net/7Z4C4
-
我推荐使用
data-del-url=""和.data('del-url')。自定义属性像您现在一样无效。
标签: javascript jquery model-view-controller tablerow