mousedown事件不会在longpress上被调用

时间:2017-08-06 19:56:10

标签: javascript

我正在开发一个小型图书馆,其中我有一个输入,当聚焦时,通过点击/点击特定的div(通过在mousedown事件上返回false)可以模糊。其他元素很好(正常行为)。提到的div在实际实现中包含一些向输入字段添加文本的按钮。该工作并不需要重点,但我也希望在那里接受键盘输入,所以我希望它按照我解释的方式工作。

我注意到移动设备上有些奇怪的行为。 当长时间(点击并按住几百毫秒)不可点击的div同时聚焦于输入时,mousedown事件不会发生并且模糊事件会神奇地触发。我注意到另一个事件也没有发生,所以它不仅仅是mousedown事件。

示例:

<input id="input" type="text" />

<div id="disabledArea" class="flex-center">
Blur disabled when clicking here.
</div>

使用以下JavaScript:

var input = document.getElementById('input');
var disabledArea = document.getElementById('disabledArea');

input.addEventListener('blur', () => {
    console.log("blur");
});

disabledArea.addEventListener('mousedown', (e) => {
    console.log("mousedown");
    e.preventDefault();
    return false;
});

https://jsfiddle.net/pgukmmjo/

有人可以帮我这个吗?它很难解释,但一旦你理解了这个问题就很明显。

我建议在Chrome浏览器中查看示例JSFiddle,并打开(CTRL + SHIFT + I)和设备工具栏(CTRL + {{1} } + SHIFT)模拟移动触摸。或者,您可以使用警报更改控制台日志,并在移动设备上查看。

0 个答案:

没有答案