【发布时间】:2019-06-22 21:31:59
【问题描述】:
我正在尝试根据单击的按钮更改表格的行。第一次单击按钮时行更改,但在那之后行值不会更改。此外,事件侦听器会在按钮更改后被移除。
HTML:
<% if(post.status === 1){ %>
<input type="button" class="btn btn-danger" value="Disapprove" id="disapproveBtn-<%= i %>">
<input type="button" class="btn btn-primary" value="Send to Moderation" id="moderateBtn-<%= i %>">
<% } %>
jQuery:
$("[id|='disapproveBtn']").click(function (e) {
console.log("CLICKED");
var trIndex = $(this).closest('tr').index();
var tr = $(this).closest('tr');
var postId = $(this).closest('tr').find("#postId").text().trim();
$.post('/admin/disapprove/' + postId, (data) => {
console.log(tr);
console.log(data);
tr.html(`
<td>
${data.post.firstName}
</td>
<td>
${data.post.lastName}
</td>
<td>
${data.post.userId}
</td>
<td>
<div id="postId">
${data.post.id}
</div>
</td>
<td>
<a href="/profile/post/${data.post.id}">Here</a>
</td>
<td>
${data.post.status}
</td>
<td>
<input type="button" class="btn btn-success" value="Approve" id="approveBtn-${trIndex}">
<input type="button" value="Send to Moderation" class="btn btn-primary" id="moderateBtn-${trIndex}">
</td>
`)
});
});
【问题讨论】:
-
仅仅使用类选择器就不能完全避免这个问题吗?
-
你认为什么?您替换整个表格行,包括按钮。被替换的按钮当然没有附加事件监听器。
-
@RoryMcCrossan 它仍然会在第一次单击不赞成按钮时更改 html。单击批准按钮时,没有任何反应。
标签: javascript jquery html node.js ejs