当row(row).remove().draw(false)
数据表中的row
删除额外的行时。
这是我的javascript:
$('.wrapper').on('click', '#confirm_delete', function(e) {
e.preventDefault();
var modal = $(this).closest('.modal');
var id = modal.find('#delete_id').val();
var row = $('#list_bkng_bus').find('.booking-id[value="'+id+'"]').closest('tr');
$.ajax({
type: 'POST',
url: '/includes/ajax/bookings-bus.php',
dataType: 'json',
data: { 'delete_id': id },
success: function(result) {
bkng_bus_table.row(row).remove().draw(false);
modal.modal('hide');
status_message('success', 'Boeking verwijderd');
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
console.log(error);
status_message('error', 'Databasefout. (Remove booking business)');
}
});
});
这是我的row
变量的内容:
0 : tr.even
context : document
length : 1
prevObject : [input.booking-id, prevObject: n.fn.init(1), context: document, selector: "#list_bkng_bus .booking-id[value="57"]"]
所以它包含tr
。
答案 0 :(得分:1)
你的代码应该工作,如果没有,那么你的VAR行应该有问题。 如果您有更多信息,请can check
答案 1 :(得分:1)
问题在于,由于生成表的方式(动态),多个事件侦听器被附加到元素。
解决方案是在.off('click')
之前使用.on('click', '#confirm_delete', function(e) {
。
这使得此代码按预期运行:
$('.wrapper').off('click').on('click', '#confirm_delete', function(e) {
e.preventDefault();
var modal = $(this).closest('.modal');
var id = modal.find('#delete_id').val();
var row = $('#list_bkng_bus').find('.booking-id[value="'+id+'"]').closest('tr');
$.ajax({
type: 'POST',
url: '/includes/ajax/bookings-bus.php',
dataType: 'json',
data: { 'delete_id': id },
success: function(result) {
bkng_bus_table.row(row).remove().draw(false);
modal.modal('hide');
status_message('success', 'Boeking verwijderd');
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
console.log(error);
status_message('error', 'Databasefout. (Remove booking business)');
}
});
});