2016-05-09 3 views
0

Есть ли способ временно (и программно) блокировать взаимодействие событий взаимодействия в сети vis.js? (то есть клики, перекатывание и т. д.). Я хотел бы сделать это, чтобы избежать неприятного взаимодействия с другим кодом, который реализует функцию «временной интервал» (то есть, по существу, он отображает разные части сети в последовательных, установленных интервалах). Другими словами, я хотел бы знать, могу ли я запретить vis.js рисовать в ответ на события, не созданные моим скриптом, в то время как скрипт выполняется. Я заметил, что есть функция clickToUse, но в этом случае это не сработает, потому что мне нужен сам сценарий, чтобы определить, когда прекратить блокировку обработки событий. Любые предложения будут оценены. Благодаря!временно блокировать обработку событий взаимодействия в сети vis.js

ответ

1

Вам необходимо манипулировать interaction options. Например:

// Save interaction options to saveOpt variable 
// 
var saveOpt = { 
    interaction: JSON.parse(JSON.stringify(network.interactionHandler.options)) 
}; 


// Set all interaction options to false: 
// 
var newOpt = { interaction: {} }; 
Object.keys(saveOpt.interaction).forEach(function(k) { 

    // Except number 
    if (typeof saveOpt.interaction[k] !== 'number') { 
    newOpt.interaction[k] = false; 
    } 
}); 

// Prevent any interactions 
// 
network.setOptions(newOpt); 

// Allow interactions (restore saved) 
// 
network.setOptions(saveOpt); 
+0

Спасибо! Похоже, он должен делать то, что мне нужно. – pgoldweic

Смежные вопросы