为了账号安全,请及时绑定邮箱和手机立即绑定

dispatchEvent触发mousedown事件有很长的延迟

dispatchEvent触发mousedown事件有很长的延迟

SMILET 2018-11-14 08:49:07
问题描述dispatchEvent传播mousedown事件时会消耗很长的时间。ele1.addEventListener('mousedown', dispatch);function dispatch(e){  console.log(new Date().getTime()); // time1   var event = new e.constructor(e.type, e);   ele2.dispatchEvent(event);  console.log(new Date().getTime()); // time2 }time2 - time1 的值跟元素数量成正比,元素越多,值越大,mousedown事件触发的延迟就越高。最多可达几千毫秒。问题出现的环境背景有三个平行的div层,最外层是蒙层,中间层是展示层,最里层是事件层。蒙层监听鼠标事件,接收到事件之后使用dispatchEvent分发给最里层。但是当中间层的元素很多的时候,蒙层上的mousedown事件调用dispatchEvent传播会有很高的延迟。中间层元素越多,dispatchEvent需要的时间就越多,延迟就越高。中间层没有介入事件传播。--想了很久都不明白,求大佬解答。对了 只有mousedown有这个问题,mousemove, mousein, mouseout都没有!!--更新最里层是高德地图时才会有这个问题,是平常的div就没有这种问题。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 836 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信