hightcharts在移动端运用 FastClick后苹果上legend点击失效的解决办法

时间:2021-11-28 20:41:11

问题:在移动端做图表运用了hightcharts,引用了fastclick来消除300ms的延迟,但是发现苹果(安卓正常)上hightcharts的legend点击不起作用了,必须长按才行。

使用fastclick库,其实现思路是,取消 click 事件(参看源码 164-173 行),用 touchend 模拟快速点击行为(参看源码 521-610 行)。

在源码521-610行里可以看到fastclick对一些特殊的标签做了处理,这里我们也对hightcharts生成的一些标签做处理,在此函数里添加以下判断

if(targetTagName === 'g' || targetTagName === 'path' || targetTagName === 'text'  || targetTagName === 'tspan'  ){
return false;
}

完美解决。

(此问题之前没有遇到过也不知道是不是没注意,我特意用了纯净的hightcharts代码做了实验,但是还是有问题,特在此记录一下,如果有同学遇到可以交流学习,如有不正确的可以指出,我在修改。)