ContentTools - 如何在表格中添加新行?

问题描述 投票:-2回答:1

我想在行之间添加一个新行。目前,只能在最后一行之后添加新行。参考:http://getcontenttools.com/

当前的JS代码

row = new ContentEdit.TableRow(); 
_ref = cell.parent().children; 
for (_i = 0, _len = _ref.length; _i < _len; _i++) { 
child = _ref[_i]; 
newCell = new ContentEdit.TableCell(child.tagName(), child._attributes);
newCellText = new ContentEdit.TableCellText(''); 
newCell.attach(newCellText); 
row.attach(newCell); 
} 
section = this.closest(function (node) { 
return node.type() === 'TableRow'; 
}); 
section.attach(row); 
javascript jquery html content-management-system wysiwyg
1个回答
0
投票

下面的代码片段对我有用。

TableCellText.prototype._isLastCell = function () {
        var cell, row, section, table;
        debugger;
        cell = this.parent();
        row = cell.parent();
        section = row.parent();
        table = section.parent();
        if (cell !== row.children[row.children.length - 1]) {
            return false;
        }
        return cell === row.children[row.children.length - 1];
    };

TableCellText.prototype._keyTab = function(ev) {
      var cell, child, grandParent, newCell, newCellText, row, section, _i, _len, _ref;
      ev.preventDefault();
      cell = this.parent();
      if (ev.shiftKey) {
        if (this._isInFirstRow() && cell.parent().children[0] === cell) {
          return;
        }
        return this.previousContent().focus();
      } else {
        if (!this.can('spawn')) {
          return;
        }
        grandParent = cell.parent().parent();
        if (grandParent.tagName() === 'tbody' && this._isLastInSection()) {
          row = new ContentEdit.TableRow();
          _ref = cell.parent().children;
          for (_i = 0, _len = _ref.length; _i < _len; _i++) {
            child = _ref[_i];
            newCell = new ContentEdit.TableCell(child.tagName(), child._attributes);
            newCellText = new ContentEdit.TableCellText('');
            newCell.attach(newCellText);
            row.attach(newCell);
          }
          section = this.closest(function(node) {
            return node.type() === 'TableSection';
          });
          section.attach(row);
          return row.children[0].tableCellText().focus();
        }

    else if (grandParent.tagName() === 'tbody' && this._isLastCell()) {
               row = new ContentEdit.TableRow();
                _ref = cell.parent().children;
                for (_i = 0, _len = _ref.length; _i < _len; _i++) {
                    child = _ref[_i];
                    newCell = new ContentEdit.TableCell(child.tagName(), child._attributes);
                    newCellText = new ContentEdit.TableCellText('');
                    newCell.attach(newCellText);
                    row.attach(newCell);
                }
                section = this.closest(function (node) {
                    return node.type() === 'TableRow';
                });           
                section.parent().attach(row, grandParent.children.indexOf(section));            
                return row.children[0].tableCellText().focus();
            }

        else {
          return this.nextContent().focus();
        }
      }
    };
© www.soinside.com 2019 - 2024. All rights reserved.