Javascript 如何让“Pointermove”委派在父/子系统上的Safari iOS中工作?

Javascript 如何让“Pointermove”委派在父/子系统上的Safari iOS中工作?,javascript,ios,web,events,safari,Javascript,Ios,Web,Events,Safari,我遇到了一个问题,还没有找到解决办法。我试图在父容器上使用带有pointermove的事件委托,我想知道事件何时从子容器传递到父容器,反之亦然 这在桌面浏览器上运行得很好,但当我在Safari iOS中尝试时,事件目标似乎被任何首先启动pointermove的东西卡住了。当pointermove跨越父/子边界时,目标不会更改。有什么想法吗 示例代码: const outer=document.getElementByIdouter; outer.addEventListenerpointerm

我遇到了一个问题,还没有找到解决办法。我试图在父容器上使用带有pointermove的事件委托,我想知道事件何时从子容器传递到父容器,反之亦然

这在桌面浏览器上运行得很好,但当我在Safari iOS中尝试时,事件目标似乎被任何首先启动pointermove的东西卡住了。当pointermove跨越父/子边界时,目标不会更改。有什么想法吗

示例代码:

const outer=document.getElementByIdouter; outer.addEventListenerpointermove,e=>console.loge.target.id 身体{ 触摸动作:无; } 外{ 高度:500px; 宽度:500px; 背景色:AAFF; } 内在的{ 高度:200px; 宽度:200px; 背景色:AAFFAA; }
看起来这个问题已经存在很长时间了。Touchmove与Pointermove的工作方式相同,这就是为什么我没有看到这个问题的结果。以下是使用document.element fromPoint的变通方法,例如:

const outer = document.getElementById("outer");
outer.addEventListener("pointermove", (e) => {
    actualTarget = document.elementFromPoint(e.clientX, e.clientY);
    console.log(actualTarget.id);
})

我应该提到,我的测试是用ios 14.0.2进行的,我搜索了一段时间,直到现在才找到答案。显然这已经是一件很长时间的事情了。这看起来像是解决办法: