回调函数参数ctx未定义为何能运行?Vis.js afterDrawing事件疑问
代码可正常运行的原因
你观察到ctx没有显式定义依然能使用,是因为它是Vis.js事件触发时自动传递给回调函数的内置参数:
- 我们通过
network.on("afterDrawing", 回调函数)绑定事件监听时,不需要自己主动给回调函数传参 - 每当Vis.js完成画布绘制触发
afterDrawing事件时,会自动把当前的Canvas 2D上下文对象作为第一个参数传入我们绑定的回调函数 - 代码里的
function (ctx) {}中的ctx只是我们给这个自动传入的参数起的变量名,你换成任意合法变量名比如context也能正常运行
核心代码参考:
network.on("afterDrawing", function (ctx) { var dataURL = ctx.canvas.toDataURL(); document.getElementById('canvasImg').src = dataURL; });
Vis.js对afterDrawing事件的官方说明如下:
| 事件名称 | 传递属性 | 事件描述 |
|---|---|---|
| afterDrawing | canvas context | 在canvas绘制完成后触发,可用于在网络可视化图层上方进行额外绘制。 |
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

