我的表格的每一行都有一个删除按钮,它使用AJAX来获取json数组并加载数据。 .on()单击事件位于页面页脚的fnDrawkCallback之外。我认为将它放入回调会解决这个问题,但事实并非如此。
每次表从第一个init加载到添加或删除行的任何重绘时,当我单击任何行中的删除按钮时,只删除顶部的第一行。为什么on click事件绑定到该行的删除按钮?
删除按钮具有.remImg类,该按钮从json数组加载到表中作为键值。
由于
var oTable = $('#sss').dataTable({
"oLanguage": {
"sEmptyTable": "No data"
},
"bProcessing": true,
"bServerSide": true,
//"aaData": testdata,
"sAjaxSource": 'http://example.com/sss.php',
"aoColumns": [
{ "mDataProp": "date" },
{ "mDataProp": "action_buttons","bSortable": false }
],
"fnDrawCallback": function( oSettings ) {
$(document).on("click", ".remImage", function(e) {
jQuery.ajax({
type: 'post',
url: 'http://example.com/sss.php',
data: {
action: 'delete_post',
att_ID: jQuery('#att_remove').val(),
_ajax_nonce: jQuery('#nonce').val(),
post_type: 'sss'
},
success: function( html ) {
alert( html );
$('#sss').dataTable().fnReloadAjax();
}
});
return false;
});
}
});
答案 0 :(得分:1)
att_ID: jQuery('#att_remove').val(),
这将仅定位页面上的第一个#att_remove
值,因此无论您从何处触发事件,都只会删除您的第一行。
使用另一种方法来访问不依赖于id选择器的值,你应该得到你希望的结果。