2012-02-17 115 views
0

我有一个右边有删除按钮的表。当点击这些按钮时,我有一个ajax调用。 OnComplete事件,我有这个代码:

function JsonDelete_OnComplete(data) { 

    var json = $.parseJSON(data.responseText); 

    if (json.Success) { 
     $(this).parents("tr.item").remove(); 
    } 

} 

事件被解雇。我尝试删除已删除的行,但它不起作用。你可以帮我吗?我敢肯定,问题是在$(本)....行

我的表被格式化为这样的:

<table> 
    <tr class="item"> 
     <td> 
      @Html.DisplayFor(m => person.FirstName) 
     </td> 
     <td> 
      @Html.DisplayFor(m => person.LastName) 
     </td> 
     <td align="right"> 
      @Ajax.ActionLink("delete", "JsonDelete", "People", new { Id = person.Id }, new AjaxOptions { Confirm = "Are you sure you want to Delete this Person? This action cannot be undone.", HttpMethod = "Delete", OnComplete = "JsonDelete_OnComplete" }) 
     </td> 
    </tr> 
</table> 

感谢。

enter image description here

+0

你可以尝试看看错误与Firefox中的萤火虫。这可能会给你一些解决问题的想法。 – sinanakyazici 2012-02-17 13:08:48

+0

谢谢我不知道萤火虫,但我会调查...... – Bronzato 2012-02-17 13:10:14

+0

什么是@Ajax.ActionLink?它似乎不在jQuery中。无论如何,'this'很可能不是你在'JsonDelete_OnComplete'中想到的。我建议你看一下'@ Ajax.ActionLink'的文档,看看你是否能找到某种方式将它绑定到当前元素(你的点击目标)。 – 2012-02-17 13:12:14

回答

1

你应该尝试,

@Ajax.ActionLink("delete", "JsonDelete", "People", new { Id = person.Id }, new AjaxOptions { Confirm = "Are you sure you want to Delete this Person? This action cannot be undone.", HttpMethod = "Delete", OnComplete = "JsonDelete_OnComplete(data,this)" }) 

function JsonDelete_OnComplete(data,element) { 

    var json = $.parseJSON(data.responseText); 

    if (json.Success) { 
     $(element).parents("tr.item").remove(); 
    } 

} 
+0

这不起作用。不管怎样,谢谢你。 – Bronzato 2012-02-17 16:25:57

相关问题