Javascript 在IE11中使用指针事件时防止单击?
我正在开发一个JavaScript应用程序,它必须同时在IE11和Edge上运行。在IE11中,我看到(复制自)的事件链如下: 指针悬停>鼠标悬停>指针悬停>鼠标悬停>指针悬停> 鼠标向下>(指针移动>鼠标移动)+>指针移动>鼠标移动> (lostpointercapture)>pointerout>MousOut>pointerleave> 鼠标移动>焦点>单击Javascript 在IE11中使用指针事件时防止单击?,javascript,internet-explorer-11,pointer-events,Javascript,Internet Explorer 11,Pointer Events,我正在开发一个JavaScript应用程序,它必须同时在IE11和Edge上运行。在IE11中,我看到(复制自)的事件链如下: 指针悬停>鼠标悬停>指针悬停>鼠标悬停>指针悬停> 鼠标向下>(指针移动>鼠标移动)+>指针移动>鼠标移动> (lostpointercapture)>pointerout>MousOut>pointerleave> 鼠标移动>焦点>单击 该应用程序已经连接到处理鼠标和触摸事件,因此我对所有指针事件调用preventDefault()以取消相应的鼠标事件。不幸的是,点击
该应用程序已经连接到处理鼠标和触摸事件,因此我对所有指针事件调用preventDefault()以取消相应的鼠标事件。不幸的是,点击在最后通过,并导致了问题。是否有任何内置的方法来禁止点击事件在最后触发?我正在使用jQuery指针事件Polyfill()在Webkit浏览器上使用“pointerup”事件,我遇到了类似的问题。在我的情况下,我必须防止链接被跟踪 我通过在触发“pointerup”之后添加一个“click”事件监听器来解决这个问题,然后阻止“click”事件并删除它的监听器。像这样:
var myLink = document.getElementsByClassName("myLink")[0];
myLink.addEventListener("pointerup", handleLinkPress);
function handleLinkPress(evt) {
// do something here...
evt.target.addEventListener("click", unfollowLink);
function unfollowLink(evt) {
evt.preventDefault();
evt.target.removeEventListener("click", unfollowLink);
}
}
尝试添加
指针事件:无
添加指针事件:无似乎会禁用所有功能。我不确定这是否是应该发生的,但不幸的是,我需要指针事件(我们在小部件中多次填充它们并将它们视为触摸事件)。我需要保留指针,但忽略链末端的点击。