Ajax调用后,HTML表将不会更新
HTML table will not update after Ajax call
我正在使用Ajax从Roles表中删除一行。我可以添加角色,并允许用户从每行的链接中删除角色。该函数工作并删除数据库中的行,但事件发生后不会更新表。对于用户来说,该行似乎从未被删除。我需要重新加载视图吗?不确定如何刷新屏幕以仅反映剩余行。
<div id="roleTable">
<table class="table">
<tr><th>Role</th><th>Description</th><th>Delete</th></tr>
@{int count = 0;}
@foreach (var b in ViewBag.roles)
{
string color = "";
if (count % 2 == 0)
{
color = "";
}
else
{
color = "success";
}
count++;
<tr class=@color id="roleRow-@b.RoleGUID">
<td>@b.Role</td>
<td>@b.Description</td>
<td><a href="#" class="removeLink" data-id="@b.RoleGUID" onclick="return confirm('Are you sure');">Remove</a></td>
</tr>
}
</table>
</div>
<p id="result">
</p>
jQuery代码:
<script>
$("#roleTable").on("click",".removeLink", function () {
var roleToDelete = $(this).attr("data-id");
if (roleToDelete != '') {
$.post("/UserRoles/RemoveRole", { "RoleGUID": roleToDelete },
function (data) {
$("#roleRow-" + roleToDelete).fadeOut('slow');
$("#result").text(data.Message).fadeOut(5000);
});
}
});
</script>
您需要fadeOut
单元格,而不是行。你可以删除淡出后的行,但如果你想要淡出效果,你必须使用这样的东西:
$("#roleRow-" + roleToDelete + " td").fadeOut('slow');
这个问题可能会帮助你达到你想要的效果。
只需调用此代码
$("#roleRow-" + roleToDelete).remove();
代替
$("#roleRow-" + roleToDelete).fadeOut('slow');
感谢大家的建议。在完成建议后,对我有效的代码是:
$('#roleRow-'+roleToDelete).closest('tr').remove();
由于某种原因,对$(this)的调用不起作用,需要使用$('#roleRow-'+roleToDelete)
相关文章:
- 使用 node.js 和 javascript 更新 HTML 对象
- 如何从弹簧控制器方法更新html img src
- 以非阻塞方式更新HTML画布
- 如何在加载页面后更新 HTML
- 根据json更新html
- Angular数组更改时更新HTML视图
- 根据ajax json响应更新html表
- 从数组中删除值,用新的数组总数更新html或'$'如果没有总计
- 测试React中的点击事件是否会更新HTML
- 动态更新Html中的列表
- Jquery函数更新html
- JavaScript/jQuery:在选择列表更改时更新HTML
- 通过ajax更新HTML块内容
- 当我更新HTML时,Keydown事件停止触发
- 动态更改语言时,应更新HTML lang属性
- 更新html页面中的数据
- 如何使用BackboneJs获取JSON数据和更新html
- 如何在更改一列时更新HTML表行中的单元格
- 无法使用 innerHTML 使用 JavaScript 更新 HTML 表
- 当表单使用 ajax 和 Codeigniter 更改时自动更新 html