简体   繁体   中英

“touchmove” event is not triggered in Microsoft Edge

I need to detect an element when it is dragged based on the clientx and clienty position of the touchmove event. In Chrome, the touchmove event is recognized and position is returned properly whereas the touchmove event is not recognized in Microsoft Edge.

<div id="ele" style="position:absolute; top:0px; left:0px; width:100px;height:100px;border:1px solid"></div>

$(document).ready(function() {
   document.getElementById('ele').addEventListener('touchmove', function(e) 
   {
       console.log('event triggered');
   })
 });

I get the event type as mousemove in Edge, but I want to get the touchmove event instead. Is there any way to do that?

尝试将其添加到HTML文件:

canvas { touch-action: none;}

You need to add the "passive: false" as shown below in some sample code. It is because by default passive is set to true. I spent days figuring this one out!

document.addEventListener('touchmove', function(e) {
    e.preventDefault();
}, { passive: false });

EDIT. I believe the other post is correct and this one is wrong, however just in case it doesn't work I have left this here as other browsers require the passive: false to function as you require

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM