Javascript jquery和datatable附加事件问题
我在td上的复选框列表中附加事件时遇到问题,我使用列过滤器插件,所以问题是该事件仅附加在第一页上,所以我在绘制数据表时使用fnDrawCallback附加复选框上的事件,问题是当我分页两次或写ab时,它会附加事件两次。因此复选框不起作用。 以下是我使用的javascript代码:Javascript jquery和datatable附加事件问题,javascript,jquery,datatable,Javascript,Jquery,Datatable,我在td上的复选框列表中附加事件时遇到问题,我使用列过滤器插件,所以问题是该事件仅附加在第一页上,所以我在绘制数据表时使用fnDrawCallback附加复选框上的事件,问题是当我分页两次或写ab时,它会附加事件两次。因此复选框不起作用。 以下是我使用的javascript代码: $(document).ready(function () { $('#example').dataTable({ "fnDrawCallback": function (oSettings)
$(document).ready(function () {
$('#example').dataTable({
"fnDrawCallback": function (oSettings) {
$("[id*='UsertmpCheckbox']").on('change', function () {
//alert(parseInt($(this).attr('id').replace(/[^0-9\.]/g, '')));
var checkboxid = '#UserCheckbox' + parseInt($(this).attr('id').replace(/[^0-9\.]/g, ''));
alert(checkboxid);
if ($(checkboxid).prop('checked') == false) {
$(checkboxid).prop('checked', true);
} else {
$(checkboxid).prop('checked', false);
}
});
}
}).columnFilter({ /*sPlaceHolder: "head:after",*/
aoColumns: [{
type: "checkbox",
values: null /*[ 'Gecko', 'Trident', 'KHTML', 'Misc', 'Presto', 'Tasman', 'Webkit']*/
}, {}, {}, {}, {
type: "checkbox",
values: ['A', 'B', 'C', 'U', 'X']
}]
});
});
附加事件的函数位于fnDrawCallback中
提前感谢回答:-
$(document).ready( function () {
$('#example').dataTable( {
"fnDrawCallback": function( oSettings ) {
$("[id*='UsertmpCheckbox']").off('click');
$("[id*='UsertmpCheckbox']").on('click',function() {
//alert(parseInt($(this).attr('id').replace(/[^0-9\.]/g, '')));
var checkboxid = '#UserCheckbox'+parseInt($(this).attr('id').replace(/[^0-9\.]/g, ''));
alert(checkboxid);
if($(checkboxid).prop('checked')==false){
$(checkboxid).prop('checked', true);
}
else{
$(checkboxid).prop('checked', false);
}
});
}
} ).columnFilter({ /*sPlaceHolder: "head:after",*/ aoColumns: [
{ type: "checkbox", values: null /*[ 'Gecko', 'Trident', 'KHTML', 'Misc', 'Presto', 'Tasman', 'Webkit']*/ },{},{},{},{ type: "checkbox", values: [ 'A', 'B', 'C', 'U', 'X'] } ]});
} );
在绑定事件之前,只需清除td的所有绑定。使用unbind或off清除事件谢谢你这是我需要的