問題描述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 回答
- 0 關注
- 865 瀏覽
添加回答
舉報
0/150
提交
取消