antvis / G2

📊 The concise and progressive visualization grammar.
https://g2.antv.antgroup.com
MIT License
12.11k stars 1.59k forks source link

legend-item:mouseenter事件不能被触发 #1207

Closed ssfxz closed 5 years ago

ssfxz commented 5 years ago
chart.on('interval:mouseenter', ev => console.log('interval:mouseenter'));
chart.on('legend-item:click', ev => console.log('legend-item:click'));
chart.on('legend-item:mouseenter', ev => console.log('legend-item:mouseenter'));

以上三个事件中,interval:mouseenter与legend-item:click事件均可以正常触发,但是legend-item:mouseenter无法被触发。

https://riddle.alibaba-inc.com/riddles/d256b049

hustcc commented 5 years ago

目前 event container 中没有绑定 mouseenter 事件。而 interval shape 的 mouseenter 是根据 mousemove 模拟出来的,且只判断了 Geometry shape 才会 emit 出 mouseenter 事件。事件这块的梳理,在 g2 4.0 重处理吧。

可以通过直接获取所有的 legends,然后去绑定 g 中的基础事件,包括 mouseenter,或者监控 itemhover 事件去达到你的目的。

legend.on('mouseenter', () => {});

// or

legend.on('itemhover', () => {});
legend.on('itemunhover', () => {});