@@ -141,7 +141,9 @@ Checkboxes.prototype = {
141
141
} ;
142
142
143
143
if ( ctx . aoColumns [ i ] . sClass === '' ) {
144
- colOptions [ 'className' ] = 'dt-body-center' ;
144
+ colOptions [ 'className' ] = 'dt-checkboxes-cell' ;
145
+ } else {
146
+ colOptions [ 'className' ] = ctx . aoColumns [ i ] . sClass + ' dt-checkboxes-cell' ;
145
147
}
146
148
147
149
if ( ctx . aoColumns [ i ] . sWidthOrig === null ) {
@@ -263,14 +265,6 @@ Checkboxes.prototype = {
263
265
// Prevent row selection
264
266
e . preventDefault ( ) ;
265
267
}
266
-
267
- // WORKAROUND: Prevent duplicate checkbox select/deselect event
268
- // when "label" node is used in the column containing checkbox
269
- if ( ctx . aoColumns [ colIdx ] . checkboxes ) {
270
- if ( originalEvent . target . nodeName . toLowerCase ( ) === 'label' ) {
271
- e . preventDefault ( ) ;
272
- }
273
- }
274
268
} ) ;
275
269
276
270
// Handle row select/deselect event
@@ -295,7 +289,7 @@ Checkboxes.prototype = {
295
289
self . onDraw ( e ) ;
296
290
} ) ;
297
291
298
- // Handles checkbox click event
292
+ // Handle checkbox click event
299
293
$tableBody . on ( 'click.dtCheckboxes' , 'input.dt-checkboxes' , function ( e ) {
300
294
self . onClick ( e , this ) ;
301
295
} ) ;
@@ -310,6 +304,21 @@ Checkboxes.prototype = {
310
304
$ ( 'input[type="checkbox"]' , this ) . not ( ':disabled' ) . trigger ( 'click' ) ;
311
305
} ) ;
312
306
307
+ // If row selection is disabled
308
+ if ( ! hasCheckboxesSelectRow ) {
309
+ // Handle click on cell containing checkbox
310
+ $tableContainer . on ( 'click.dtCheckboxes' , 'tbody td.dt-checkboxes-cell' , function ( e ) {
311
+ $ ( 'input[type="checkbox"]' , this ) . not ( ':disabled' ) . trigger ( 'click' ) ;
312
+ } ) ;
313
+ }
314
+
315
+ // Handle click on label node in heading containing "Select all" control
316
+ // and in cell containing checkbox
317
+ $tableContainer . on ( 'click.dtCheckboxes' , 'thead th.dt-checkboxes-select-all label, tbody td.dt-checkboxes-cell label' , function ( e ) {
318
+ // Prevent default behavior
319
+ e . preventDefault ( ) ;
320
+ } ) ;
321
+
313
322
// Handle click on "Select all" control in floating fixed header
314
323
$ ( document ) . on ( 'click.dtCheckboxes' , '.fixedHeader-floating thead th.dt-checkboxes-select-all input[type="checkbox"]' , function ( e ) {
315
324
// If FixedHeader is enabled in this instance
0 commit comments