所以在我的数据表中,我有允许编辑记录的按钮。我正在使用 JQuery 来设置样式并为按钮单击提供功能。将 JQuery 应用于按钮的唯一方法是将代码放在表的 fnDrawCallback 选项中。但是,它会导致函数的多个实例!
例如,为了测试,我创建了一个警报,以便在单击按钮时为我提供按钮 ID(即记录 ID)。它不仅提醒我一次,还给我几个提醒!
有任何想法吗?
*作为旁注,我尝试在 fnInitComplete 选项中声明函数,但这仅将该函数应用于显示的第一组记录(即 10)。一旦我显示更多记录或转到下一页,这些功能就无法处理这些记录。
var tfTable = $('.mypbhs_truforms').dataTable({
"bProcessing": true,
"sAjaxSource": 'sql/mypbhs_truforms.php?accountid=<?PHP echo $accountid;?>',
"aaSorting": [[ 1, "asc" ]],
"bJQueryUI": true,
"sPaginationType": "full_numbers",
//"bStateSave": true, //Use a cookie to save current display of items
"aoColumns": [
{"asSorting": [ ], "sClass":"center"},
null,
null,
null,
null,
null,
{"asSorting": [ ], "sClass":"center"},
],
"fnDrawCallback": function(){
//EDIT OFFICE FORM
$('.mypbhs_edit_truform_button').click(function(){
var tf_id = $(this).attr('id');
alert(tf_id);
});
},
"bScrollCollapse": true,
"sScrollX": "100%",
"fnInitComplete": function() {
tfTable.fnAdjustColumnSizing();
}
});
最佳答案
好的,所以找到了解决方法。将 JQuery 的 .on 函数用于我放置在 fnDrawCallback 选项中的所有函数。
我很好奇为什么使用 fnDrawCallback 会创建同一函数的多个实例,但如果有人对此有答案。
关于JQuery DataTables - fnDrawCallback 递归问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8186700/