问题:在移动端做图表运用了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代码做了实验,但是还是有问题,特在此记录一下,如果有同学遇到可以交流学习,如有不正确的可以指出,我在修改。)