【问题标题】:Removing an element by ID (jointJS)按 ID 移除元素(jointJS)
【发布时间】:2013-12-11 23:11:26
【问题描述】:

我注意到 JointJS 链接可以通过将鼠标悬停在它们上并单击出现的大红色 X 来删除。但我想知道是否可以在创建元素后删除它,不知道变量名。

onCreateButtonClick(function(){
  var rect = new joint.shapes.basic.Rect({
    position: { x: 100, y: 30 },
    size: { width: 100, height: 30 }
  });
  graph.addCell([rect]);
});

onRemoveButtonClick(function(){
   //removeRectangle here?
});

我的问题是:我可以在第二个函数中删除这个矩形吗?

【问题讨论】:

    标签: javascript jointjs


    【解决方案1】:

    通过 ID 删除元素可以简单地执行为:graph.getCell(cellID).remove()。在您的onRemoveButonClick() 中,您必须以某种方式知道要删除哪个元素。这取决于您的应用程序 UI,但您可以执行以下操作:

    var selected;
    
    paper.on('cell:pointerdown', function(cellView) {
        selected = cellView.model;
    });
    
    onRemoveButtonClick(function() { 
        if (selected) selected.remove(); 
    });
    

    【讨论】:

    • graph.getCell(cellID).remove() 如果单元格有子单元格,则不会删除该单元格。当我尝试删除具有子项的单元格时出现此异常 - Uncaught TypeError: Cannot read property 'unembed' of undefined 如何删除图形的所有单元格,嵌入的和未嵌入的?
    【解决方案2】:

    我通过单击元素来实现删除元素,直接使用 cellView 参数。

    paper.on('cell:pointerclick', function(cellView, evt, x, y) {
        cellView.remove();
    });
    

    【讨论】:

    • 如何动态保存到json?
    • 您的意思是问如何更新已删除元素的json?您是手动维护纸张的 json 吗?
    • 是的,当我更改或删除元素时,我想将其保存为 JSON 并发送到服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多