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

How to remove ContentEdit.Static element in ContentTools

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

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

我可以这样做 table 不是 editable 但如果你点击它可以将其删除?

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

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>')

谢谢!

大多数情况下无法与静态元素交互(其他元素可以围绕它们拖动,仅此而已)。 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);
});