您好我使用确认对话框确保用户操作。但是,当我在代码中看不到任何触发此内容的内容时,确认对话框会一再出现。这是一个错误吗?或者我做错了什么?
$('#table_trans tbody').on('click', 'tr td button', function() {
var trans_id = $($(this).parents(':eq(1)')[0].childNodes[0]).html();
var r = confirm("Sure!");
if (r == true) {
$.ajax({
url: '?r=transactions/ajaxdelete',
data: {
id: trans_id
},
success: function(response) {
$.notify(response, "error");
}
});
$($(this).parents(':eq(1)')).remove();
} else {
alert("Action Cancelled!");
}
});
还要补充一点,有时只会出现Javascript确认对话框。有时它表现正常,有时它出现两次,但有时无限。
更新
根据Parag Bhayani的建议,以下是在表#table_trans
中添加一行的javascript
// msg
是通过进行ajax调用收到的json响应
for (var i = 0, l = msg.length; i < l; i++) {
var rowz = "<tr><td>" + msg[i].id +"</td><td>"+msg[i].account_no+"</td><td>" + msg[i].date_of_transac +"</td><td>"+msg[i].description+"</td><td>"+msg[i].amount+"</td><td><button id=\"delete_trans\">Delete</button></td><tr>";
tbl_html = tbl_html + rowz;
}
//对不起来感到沮丧....但请滚动到最右边看按钮,点击哪个触发事件。
答案 0 :(得分:1)
只有当您的事件多次注册时才会发生这种情况,因此有一种情况可能导致此问题,即事件注册代码处于循环中,那么您的事件可能已经注册了多次。