2013-12-11 5 views
4

Я заметил, что ссылки JointJS можно удалить, наведя на них курсор и нажав на большой красный X, который появляется. Но мне было интересно, можно ли удалить элемент после его создания, , не зная имя переменной.Удаление элемента по ID (jointJS)

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? 
}); 

Мой вопрос: могу ли я удалить этот прямоугольник во второй функции?

ответ

7

Извлечение элементов по идентификатору может быть простым: graph.getCell(cellID).remove(). В вашем onRemoveButonClick() вам нужно как-то узнать, какой элемент вы хотите удалить. Это зависит от вас интерфейса приложения, но вы можете, например, сделать что-то вроде:

var selected; 

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

onRemoveButtonClick(function() { 
    if (selected) selected.remove(); 
}); 
+0

graph.getCell (cellID) .remove() не удаляет ячейку, если ячейка имеет дочерние элементы. Я получаю это исключение, когда пытаюсь удалить ячейку с дочерними объектами. - Uncaught TypeError: Не удается прочитать свойство unembed из undefined Как удалить все ячейки графа, внедренные и не внедренные? –

0

Я реализовал удаление элемента с помощью одного нажатия на элемент, используя cellView arguement непосредственно.

paper.on('cell:pointerclick', function(cellView, evt, x, y) { 
    cellView.remove(); 
}); 
Смежные вопросы