Javascript 无论发生什么情况,IOS都不会删除事件处理程序

Javascript 无论发生什么情况,IOS都不会删除事件处理程序,javascript,ios,touchstart,Javascript,Ios,Touchstart,我一定是做错了,因为即使它可以在IE9+、Edge、ff、chrome和android上运行,但在IOS上却无法运行。这段代码在IOS上只会继续运行。有办法解决这个问题吗 function handleeeee() { alert("HANDL-O"); document.body.removeEventListener("touchstart", handleeeee); } document.body.addEventListener("touchstart", handle

我一定是做错了,因为即使它可以在IE9+、Edge、ff、chrome和android上运行,但在IOS上却无法运行。这段代码在IOS上只会继续运行。有办法解决这个问题吗

function handleeeee() {
    alert("HANDL-O");
    document.body.removeEventListener("touchstart", handleeeee);
}
document.body.addEventListener("touchstart", handleeeee, { once: true }); 

当然,有一些解决方法,一个简单的方法是使用变量。var handleeeee=function(){}?我得到了同样的结果。不,您使用一个单独的变量来跟踪处理程序是否应该运行。是的,但我不应该那样做。但既然用正确的方法做这件事不管用,我剩下的就只有黑客了。我很困惑removeEventListener为什么不起作用。我可以在addEventListener之后立即调用removeEventListener,它仍然会调用Handleeee。我想你说的是Safari的iOS版本吧?根据实际情况,需要对参数进行精确匹配。他们不在你问题的代码中。也许这就是原因?