gpt4 book ai didi

javascript - 在触摸设备上触发 mousedown 和 mouseup

转载 作者:行者123 更新时间:2023-12-05 05:19:14 27 4
gpt4 key购买 nike

只是好奇 mousedown 的目的和 mouseup事件,因为它们也会在触摸设备上触发。我以为mousedowntouchstart是互斥的(前者在桌面上工作,而后者在触摸设备上工作)并且对于 mouseup 是相同的和 touchend , 但似乎并非如此。一个完整的触摸事件会触发上述所有事件:在 safari 和 chrome 上测试。因此,为了区分点击(鼠标)事件和点击(触摸)事件,我需要使用某种函数来告诉我这是否是触摸设备:

    function isTouchDevice() {
return 'ontouchstart' in window // works on most browsers
|| navigator.maxTouchPoints; // works on IE10/11 and Surface
}

myElem.addEventListener("mousedown", () => {
if (isTouchDevice()) return;
// do something
}, false);

myElem.addEventListener("mouseup", () => {
if (isTouchDevice()) return;
// do something
}, false);

myElem.addEventListener("touchstart", () => {
// do something
}, false);

myElem.addEventListener("touchend", () => {
// do something
}, false);

我真的需要检查设备是否触摸以区分鼠标点击和触摸点击吗?

最佳答案

不,您不会也不应该尝试测试设备是否为触摸屏。如果您希望停止触发其他事件,可以使用 preventDefault 方法。

myElem.addEventListener("touchstart", (event) => {
event.preventDefault();
// do something
}, false);

如果您想要更深入的信息,您应该阅读这篇文章:Touch and Mouse

关于javascript - 在触摸设备上触发 mousedown 和 mouseup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46746288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com