From c6f39ef158f0ee764267c60d488b1ef20c58ac4e Mon Sep 17 00:00:00 2001 From: Brandon Jank Date: Tue, 21 Nov 2017 08:51:19 -0800 Subject: [PATCH] Make it work with responsive tables Need to check if the cell exists on cell click before continuing. --- js/dataTables.cellEdit.js | 46 ++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/js/dataTables.cellEdit.js b/js/dataTables.cellEdit.js index 0803307..ab9fb25 100644 --- a/js/dataTables.cellEdit.js +++ b/js/dataTables.cellEdit.js @@ -94,29 +94,31 @@ jQuery.fn.dataTable.Api.register('MakeCellsEditable()', function (settings) { if (table != null) { // On cell click $(table.body()).on('click', 'td', function () { - - var currentColumnIndex = table.cell(this).index().column; - - // DETERMINE WHAT COLUMNS CAN BE EDITED - if ((settings.columns && settings.columns.indexOf(currentColumnIndex) > -1) || (!settings.columns)) { - var row = table.row($(this).parents('tr')); - editableCellsRow = row; - - var cell = table.cell(this).node(); - var oldValue = table.cell(this).data(); - // Sanitize value - oldValue = sanitizeCellValue(oldValue); - - // Show input - if (!$(cell).find('input').length && !$(cell).find('select').length && !$(cell).find('textarea').length) { - // Input CSS - var input = getInputHtml(currentColumnIndex, settings, oldValue); - $(cell).html(input.html); - if (input.focus) { - $('#ejbeatycelledit').focus(); + if (table.cell(this).index()) { + var currentColumnIndex = table.cell(this).index().column; + + // DETERMINE WHAT COLUMNS CAN BE EDITED + if ((settings.columns && settings.columns.indexOf(currentColumnIndex) > -1) || (!settings.columns)) { + var row = table.row($(this).parents('tr')); + editableCellsRow = row; + + var cell = table.cell(this).node(); + var oldValue = table.cell(this).data(); + // Sanitize value + oldValue = sanitizeCellValue(oldValue); + + // Show input + if (!$(cell).find('input').length && !$(cell).find('select').length && !$(cell).find('textarea').length) { + // Input CSS + var input = getInputHtml(currentColumnIndex, settings, oldValue); + $(cell).html(input.html); + if (input.focus) { + $('#ejbeatycelledit').focus(); + } + } } - } - } + } + } }); }