【发布时间】:2017-03-08 13:47:22
【问题描述】:
我有一个有趣的问题,我不知道为什么会这样。我有 dataTables 和数据是在选择更改后使用 jquery ajax 发布的。我有多重选择的onclick功能。 (它必须在单击表格时运行,它会更改行样式等。)我注意到(带调试);当我在第一次加载后单击行时,onclick 按预期工作一次。但是点击第二次加载后(更改选择)运行2次并点击第三次加载后运行3次我不明白发生了什么。所以需要一些帮助。
这是加载表格的选择更改功能;
// in doc.ready
$('#groupSelect').change(function() {
var group = $('#groupSelect').val();
if (!$.fn.DataTable.isDataTable('#questTable')) //this is for first load
{
GetQuestions(group);
} else //this is for after first load
{
var table = $('#questTable').DataTable();
table.destroy();
table.clear().draw();
GetQuestions(group);
}
});
这是获取数据的GetQuestions()函数;
// out of doc ready
function GetQuestions(questGroup) {
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: 'SetAudit.aspx/Questions',
data: '{"q_group":"' + questGroup + '"}',
success: function(result) {
$('#questTable').DataTable({
data: result.d,
columns: [{
data: 'q_id'
}, {
data: 'q_text'
}]
});
//this click function runs multiple time at 1 click
$('#questTable tbody').on('click', 'tr', function() {
var table = $('#questTable').DataTable();
var count = table.rows('.selected').count();
$(this).toggleClass('selected');
$('#selectedCount').text('' + table.rows('.selected').count() + '');
});
}
});
}
如果我在 ajax 成功函数中创建它是可以的,但它在其他任何地方都不起作用。提前致谢。
【问题讨论】:
标签: javascript jquery ajax datatables onclick