You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vis.js Timeline的onMoving回调报错问题求助

解决Vis.js Timeline onMoving事件报错的问题

我一眼就揪出问题所在了——你的onMoving回调函数漏了调用传入的callback参数!Vis.js的onMoving事件是异步回调模式,必须通过这个callback来告知Timeline是否允许当前的移动操作,或是返回调整后的位置,不然就会触发你看到的这个错误。

正确的实现方式

你只需要在函数里补上callback()的调用即可:如果要允许移动直接传true,如果需要调整移动后的位置,可以传入修改后的item对象,示例如下:

options.onMoving = function (item, callback) {
  console.log('onMoving');
  // 允许当前移动操作,直接传true
  callback(true);

  // 若要调整移动后的位置,可修改item后传入
  // item.start = new Date(调整后的时间戳);
  // callback(item);
};

为什么snap可以正常运行?

这是因为snap是一个同步函数,它只需要直接返回计算后的日期值就行,不需要异步回调。而onMoving被设计成异步模式,是为了支持需要异步判断的场景(比如请求后端接口验证移动权限),所以必须严格遵循“调用callback”的规则。

额外提示

如果想阻止当前的移动操作,只需要调用callback(false),Timeline就会取消这次移动动作。

内容的提问来源于stack exchange,提问作者Knarf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:36:25