В основном вам нужно обработать click
событие (network.on("click", ...)
) и открыть всплывающее окно (если вы выберете код приведенного примера, вы увидите, что это делается с помощью editNode
помощник, а также присваивая document.getElementById('node-operation').innerHTML = "Add Node";
; я должен признать, что код там не очень многократно используется, вы можете взглянуть на мою реализацию графического редактора, см. config.macros.graph.createEditPopup
помощникМногоразовее для таких вещей).Так что будет что-то вроде
network.on("click", function(clickProperties)
{
var popup = document.querySelector('.my_popup'); // adjust selector to the class/id you use
if(clickProperties.nodes.length == 1) // you want this for just one node clicked, right?
{
var id = clickProperties.nodes[0];
popup.style.display = 'block';
popup.textContent = 'one node selected: '+id; // fill popup input fields etc
}
else if(clickProperties.nodes.length == 0)
{
popup.style.display = 'none';
}
})
(посмотрите, как это работает с помощью только div вместо всплывающего окна ). Вам также нужно будет обрабатывать скрытие и отображение кнопок сохранения / отмены, добавляя / удаляяdisplay: none;
CSS к элементам;или, что еще лучше, вы можете каждый раз воссоздавать всплывающее окно, чтобы не связываться с ними.Вы также должны решить, как вы собираетесь закрыть всплывающее окно (вы можете пропустить скрытие «отмена» или заменить его крестовой кнопкой или закрыть при нажатии клавиши esc или при нажатии в другом месте ...)