Событие GoJS mouseDrop не запускается (используйте SelectedMoved) - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь заставить событие GoJS mouseDrop срабатывать при перетаскивании узла вокруг.

Я добавил следующие события в узел:

// *********************************** mouseEnter: function (e, obj) { console.log("mouse enter"); }, mouseLeave: function (e, obj) { console.log("mouse leave"); }, mouseDragEnter: function (e, node, prev) { console.log("mouse drag enter"); }, mouseDragLeave: function (e, node, next) { console.log("mouse drag leave"); }, mouseDrop: function (e, node) { console.log("mouse drag drop"); }, // ***********************************

Только mouseEnter и mouseLeave фактически запущены.

Как я могу заставить GoJ вызывать событие mouseDrop дляогонь, чтобы я мог захватить новое местоположение узла?

Пример кода: https://codepen.io/ravir_dhali/full/rNNpZmp

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Мой пример кода был неверным. Когда вы удаляете NODE на другом NODE, вызывается mouseDrop.

Тем не менее, я пытаюсь сделать следующее: когда NODE перемещается на диаграмме, он позиционируется / перемещается и удаляется, яЯ хочу получить новое местоположение диаграммы.

Используя addDiagramListener> SelectionMoved, я смог получить нужные мне значения.

myDiagram.addDiagramListener("SelectionMoved", function(event) {

  // https://gojs.net/latest/api/symbols/Part.html#location
  // * PART
  var selectedNode = event.diagram.selection.first();

  console.log("selectedNode",selectedNode);
  console.log("selectedNodeKey",selectedNode.key);
  console.log("selectedNode", selectedNode.location.toString());
  console.log("selectedNode", selectedNode.location.x);
  console.log("selectedNode", selectedNode.location.y);
  console.log("locationObject", selectedNode.locationObject);

  //Save new location
  // key: selectedNode.key
  // location-x: selectedNode.location.x
  // location-y: selectedNode.location.y

});

Обновление Codepen: https://codepen.io/ravir_dhali/full/rNNpZmp

0 голосов
/ 05 ноября 2019

Вместо реализации обработчиков событий только на узлах, я думаю, что вы хотите получить события для всей диаграммы. Реализуйте "SelectionMoved" DiagramEvent слушатель: https://gojs.net/latest/intro/events.html#SelectionMoved

...