Я натолкнулся на следующую проблему с визуализацией Spacetree Javascript InfoVis Toolkit: когда я щелкаю узел правой кнопкой мыши, действие, которое наступает, воздействует на другой узел в том же поддереве, чем тот, который был фактически нажат.
Вот соответствующая часть кода:
st = new $jit.ST({
Events: {
enable: true,
onRightClick: function(node, eventInfo, e) {
console.log(eventInfo); // line 87
console.log(e); // line 88
if (node != undefined) {
console.log(node.id); // line 90
if (removedNodes.indexOf(node.data.uniqueId)>-1) {
console.log(node.id, " has been restored");
removedNodes.splice(removedNodes.indexOf(node.data.uniqueId),1);
} else {
console.log(node.id, " has been deleted"); // line 95
removedNodes.push(node.data.uniqueId);
}
localStorage.setItem("removedNodes", JSON.stringify(removedNodes));
loadNewTree(currentTreeId, true, 0)
}
},
},
/* further code */
}
Как вы можете видеть, я помещаю информацию о событии и идентификатор узла целевого узла в вывод консоли (соответствующие номера строк, отмеченные нафрагмент кода выше).Вот консольный вывод для случая, когда нацелен неправильный узел:
Я застрял в этой проблеме и не вижу, что моглоошиблись.Проблема возникает примерно один раз в десять кликов, если щелкают узлы из того же поддерева, часто (но не всегда!) Целевым узлом является тот, который был нажат одним щелчком ранее.
Спасибо за любой ввод!