如何在ContentTools中删除ContentEdit.Static元素

时间:2016-06-17 14:04:55

标签: wysiwyg

我在ContentTools中创建了一个新工具,它添加了一个静态表(我不想让你编辑)。

但是,当我点击删除按钮时,作为静态元素不能保持焦点,我无法删除它。

我可以这样做,表格不可编辑,但如果点击它可以删除吗?

这就是我创建元素的方式:

new ContentEdit.Static('div', {'data-ce-moveable': true}, '<table><thead><tr><th>Foo head</th></tr></thead><tbody><tr><td>Foo body</td></tr></tbody></table>')

谢谢!

1 个答案:

答案 0 :(得分:0)

大多数情况下无法与静态元素进行交互(其他元素可以围绕它们拖动,但这是关于它的)。 ContentEdit / Tools允许您限制元素的某些行为但不能修改文本元素的内容现在不是一个(虽然我认为这可能是一个值得添加的。)

然而,目前还没有一种方法可以做到这一点,你可以使用的方法应该提供你描述的行为(让我知道你是怎么做的):

ContentEdit.Root.get().bind('mount', function(element) {
    // We only care about `TableCell` elements
    if (element.type() != 'TableCell') {
        return;
    }

    // We only want to make the element read-only if the parent table has
    // the `data-read-only` attribute.
    var table = element.closest(function(node) {
        return node.type() == 'Table';
    });

    if (table.attr('data-read-only') !== undefined) {
        // Disable text editing for the table cell
        element.tableCellText()._onKeyDown = function(ev) {
            ev.preventDefault();
        }
    }

    // Disable dragging of the table rows
    var tableRow = element.closest(function(node) {
        return node.type() == 'TableRow';
    });

    tableRow.can('drag', false);
    tableRow.can('drop', false);
});