首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果不刷新页面,则无法删除多个表行

如果不刷新页面,则无法删除多个表行
EN

Stack Overflow用户
提问于 2012-05-20 22:42:55
回答 4查看 616关注 0票数 3

在MVC中,我通过迭代视图模型的“列表”,在视图中构造了一个表。

代码语言:javascript
运行
复制
@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>

}

当我加载页面时,我得到了一个文件列表,每个文件都有一个'delete‘链接。

我用jQuery实现了一个基本的'remove row‘方法:

代码语言:javascript
运行
复制
$('#delete-file').click(function() {
    var delUrl = $(this).attr('del-url');
    $.post(delUrl, null, removeRow(),'json')
});

function removeRow() {
   $($('#delete-file').closest('tr')).fadeOut('slow');
}

当我在一个文件行上单击“删除”时,它执行得很好,但是如果我单击另一个行(删除),什么也不会发生。服务器上没有删除任何文件,行也没有被删除,就好像它被完全忽略了一样。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-20 22:48:54

您需要使用class="delete-file"而不是id="delete-file" -当然还有相应的$(".delete-file")选择器。

每个文档的ID都应该是唯一的,并且您的代码将处理程序绑定到第一个id="delete-file"元素。

票数 4
EN

Stack Overflow用户

发布于 2012-05-20 22:52:20

以下是您的解决方案:

http://jsfiddle.net/irpm/enEAt/1/

javascript是:

代码语言:javascript
运行
复制
$('.delete-file').click(function(e) {
    $(this).closest('tr').remove();
});​
票数 4
EN

Stack Overflow用户

发布于 2012-05-20 22:53:22

您需要阻止<a>元素的默认操作,并使用正确的选择器

代码语言:javascript
运行
复制
$('.delete-file').click(function(e) {
    e.preventDefault();
    var self=this,
        delUrl = $(this).attr('del-url');
    $.post(delUrl, function() {
        $(self).closest('tr').fadeOut('slow');
    },'json');
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10674370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档