Javascript超时或mouseup事件,但在Android浏览器中不是两者都有



我正在尝试编写一个javascript web应用程序,其中在mouseup上执行一个操作,并在用户按住按钮足够长的时间后执行另一个操作。我的代码适用于我在Windows和Linux上尝试过的每一个浏览器,但在我尝试过的所有三个Android浏览器(Chrome、Firefox和本机)上,如果计时器触发,我似乎会丢失mouseup事件。

我的代码的核心似乎很简单:

btn.addEventListener("mousedown", function(){
myTimer = setTimeout(function(){
btn.textContent += "t";
outVal = "b";
}, 500);
});
btn.addEventListener("mouseup", function(){
clearTimeout(myTimer);
btn.textContent += outVal;
outVal = "a"
});

Jsfidle在这里:https://jsfiddle.net/wanderinglogic/sycL0e53/

在非Android浏览器上,如果用户在短时间后释放按钮,它将输出a,如果用户按住按钮,它(在500ms后)输出t,然后当用户释放按钮时输出b

但在Android浏览器上,如果用户在短时间后释放按钮,它仍然输出a,如果用户按住按钮(500毫秒后),它仍然会输出t,但最终释放的按钮不会输出b

安卓系统上是否有一些我不知道的额外事件干扰了我的mouseup

嗯,Android(通常)没有鼠标输入。。。触摸是更好的描述方式。因此,用户输入的工作方式与非触摸界面不同。这个敏感的话题就是老鼠死亡事件。请参阅:了解触摸事件

相关内容

  • 没有找到相关文章

最新更新