我正在制作一个Web应用程序,如果用户单击vs按住按钮,按钮的行为会有所不同。我一直在尝试不同的时机,这让我想知道这种事情是否有已建立的标准。
为了澄清:我想知道是否有一个确切的时间是标准的。下面是我使用的代码,其中150ms是保持的阈值。
function onMouseDown()
{
var holdTimeout = setTimeout(function()
{
//Hold code (also cancels click event)
}, 150);
var cancelHold = function()
{
clearTimeout(holdTimeout);
};
window.onmouseup = cancelHold;
}
function onClick()
{
//Click code
}
答案 0 :(得分:0)
准确回答您的问题,按住即可单击。您可以在click
事件内部设置mousedown
事件(实际上是发布的)。运行下面的代码,然后尝试按住并释放鼠标按钮。
document.getElementById("click").addEventListener('mousedown', (e) => {
var i = 0;
var int = setInterval(() => {
console.log("hold " + i++);//<-- actions when we hold the button
}, 200)
document.getElementById("click").addEventListener("click", () => {
clearInterval(int);
console.log("release")//<-- actions when we release the button
})
});
<div id="click">click</div>
在这种情况下,如果按住按钮小于200毫秒,则仅触发click
(发布)事件。