暂时阻止 vis.js 网络中的交互事件处理
temporarily block interaction event handling in vis.js network
有没有办法暂时(并以编程方式)阻止 vis.js 网络中的交互事件处理? (即点击次数、滚动次数等)。我想这样做是为了避免与其他实现 'time lapse' 功能的代码进行讨厌的交互(也就是说,它基本上以连续的、设定的时间间隔显示网络的不同部分)。换句话说,我想知道我是否可以在脚本执行时阻止 vis.js 响应不是由我的脚本发起的事件而绘制。我注意到有一个 'clickToUse' 功能,但在这种情况下它不会很好地工作,因为我需要脚本本身来确定何时停止阻止事件处理。
任何建议将不胜感激。谢谢!
你需要操纵 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 );
有没有办法暂时(并以编程方式)阻止 vis.js 网络中的交互事件处理? (即点击次数、滚动次数等)。我想这样做是为了避免与其他实现 'time lapse' 功能的代码进行讨厌的交互(也就是说,它基本上以连续的、设定的时间间隔显示网络的不同部分)。换句话说,我想知道我是否可以在脚本执行时阻止 vis.js 响应不是由我的脚本发起的事件而绘制。我注意到有一个 'clickToUse' 功能,但在这种情况下它不会很好地工作,因为我需要脚本本身来确定何时停止阻止事件处理。 任何建议将不胜感激。谢谢!
你需要操纵 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 );