vis.js时间线点击条目可获取group但title返回undefined如何解决
vis.js Timeline的click事件回调返回的properties对象默认不会携带条目完整的自定义字段,你能直接获取到group是因为该字段属于事件交互区域的直接关联属性,而title是存储在items数据集的条目自有字段,所以直接读取properties.title会返回undefined。
解决方法
通过click事件返回的条目ID,从绑定的DataSet实例中查询完整的条目数据即可拿到title属性,修改后的事件监听代码如下:
timeline.on("click", function (properties) { console.log(properties.group) // 校验是否点击到了真实条目,避免空白区域点击时报错 if (properties.item) { // 从items数据集查询对应ID的完整条目对象 const targetItem = items.get(properties.item) // 输出title值 console.log(targetItem.title) } });
补充说明:鼠标悬浮时title能正常显示为tooltip,是因为vis组件内部渲染阶段已经读取了items中的title属性挂载到了DOM节点的提示属性上,只是事件回调不会主动返回所有条目字段,主动从数据集查询即可获取所有自定义字段。
内容的提问来源于stack exchange,提问作者newdeveloper
相关产品推荐
相关产品推荐

