AnyChart 8.10日历组件点击点位无法获取日期数据的问题求助
AnyChart 8.10日历组件点击点位无法获取日期数据的问题求助
Hey 👋,我来帮你排查下这个问题~
你现在遇到的情况大概率是事件监听的方式或者数据获取的方法不对。AnyChart的日历组件在处理点击事件时,直接用e.getData("value")可能无法正确拿到日期数据,而且要注意事件名的大小写(AnyChart里事件名是小写的click,不是大写开头的Click哦)。
给你两个可行的解决方案:
方案一:监听pointClick事件(更精准)
这个事件是专门针对点位点击的,不用额外判断目标类型,直接就能拿到点击的点位数据:
chart.listen('pointClick', function(e) { const clickedPoint = e.target; // 获取对应的日期,这里的date取决于你数据源里的日期字段名,如果你的数据源用的是其他字段,对应替换就行 const clickedDate = clickedPoint.get('date'); console.log('点击的日期:', clickedDate); });
方案二:在全局click事件中判断目标类型
如果你还是想用全局的点击事件,需要先判断点击的是不是日历的点位,再获取数据:
chart.listen('click', function(e) { // 确认点击的目标是日历点位 if (e.target && e.target.type === 'point') { const clickedDate = e.target.get('date'); console.log('点击的日期:', clickedDate); } });
另外还要确认你的日历数据源结构是否正确,比如数据源应该是类似这样的格式:
const data = [ { date: new Date(2024, 0, 5), value: 25 }, { date: new Date(2024, 0, 10), value: 40 }, // ... 更多日期数据 ];
如果你的日期字段不是date,而是其他名称(比如day),记得在get()方法里换成对应的字段名~
试试看上面的方法,应该就能拿到点击的日期数据啦!
备注:内容来源于stack exchange,提问作者user2176795
相关产品推荐
相关产品推荐

