作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是我在应用开发过程中遇到的经典问题。我的 spring Controller 中有一个 JSONObjects 数组,我必须在 jsp 中对其进行迭代;还设置了另一个名为 JSONArrayStatus 的状态属性,表明 JSON 数组是否为空。
如果 JSONArray 为空,则使用 jquery,我将显示 noDataImageDiv,否则将显示 tableDIV(使用 JSTL 绑定(bind)来自 JSONArray 的数据)
我面临的问题如下。1. 编辑表中的一行并单击更新。这时我发出一个 Ajax 调用,“UpdatedUser”,它将返回所有记录以及更新的记录。我可以使用刷新,但这不是推荐的用户体验,因此不行。
重绘代码
function reDrawExternalContactUsers(externalUsers) {
table.clear().draw();
var row = "";
$.each(externalUsers, function (i, field) {
row = '<tr><td></td><td></td><td class="edit">edit</td></tr>';
$("#tableDIV").append(row);
});
}
在这个重绘或刷新过程之后
此功能无效
$(".edit").click(function(){
});
这个函数正在运行
$("#tableDIV .edit").click(function(){
});
建议一个更好的刷新表格行的方法,如果有的话。
<div id="tableDIV">
<table id="tableID">
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
if data exist
loop{
<tr>
<td></td>
<td></td>
<td class="edit">edit</td>
</tr>
} // loops ends
if close
</tbody>
</table>
</div>
<div id="noDataImageDiv"> No data image</div>
最佳答案
html代码:
<div id="tableDIV">
<table id="tableID">
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
if data exist
loop{
<tr>
<td class="user-name"></td>
<td></td>
<td class="edit" data-user-id="">edit</td> //set user_id in attr data-user-id
</tr>
} // loops ends
if close
</tbody>
</table>
</div>
<div id="noDataImageDiv"> No data image</div>
jquery代码:
你应该在文档上使用点击事件
$(document).on('click', '.edit', function () {
var btn = $(this);
var user_id = btn.attr("data-user-id"); //user_id of user will update
// extra user data
$.ajax({
method: "POST",
url: url,
data: {
'id': id,
// extra data to send
},
success: function (data) {
if (data.status) // successfully user updated
{
var user = data.user;
/* you can set user data like this */
btn.closest('tr').find('.user-name').html(user.name);
}
}
});
});
关于javascript - 如何刷新或重绘表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390789/
我是一名优秀的程序员,十分优秀!