Javascript Longpress模拟带有onmousedown,但也有onclick

Javascript Longpress模拟带有onmousedown,但也有onclick,javascript,jquery,Javascript,Jquery,我有下面的HTML <li onclick="setServerID(this);" class="server-item-item" data-server="1" onmousedown="serverHold(this);" onmouseup="serverRelease();"><span>MyServer</span></li> 及 多亏了我之前看过的文章,这一切都非常好用,但问题是它是一款触摸屏类型的应用程序,它执行onclick

我有下面的HTML

<li onclick="setServerID(this);" class="server-item-item" data-server="1" onmousedown="serverHold(this);" onmouseup="serverRelease();"><span>MyServer</span></li>

多亏了我之前看过的文章,这一切都非常好用,但问题是它是一款触摸屏类型的应用程序,它执行
onclick

无论如何,要做到这一点,我可以获得以下功能:

列表项->点击并保持1000毫秒->执行
serverHold
并执行 不执行
setServerID

列表项->单击并不保持或保持时间小于1000毫秒-> 仅执行
setServerID


谢谢

只需保留一个标志,指示您在单击过程中是否已长按:

function setServerID(server) {
    sessionStorage.serverID = server.dataset.server;
    getServerInfo();
    gotoMain();
}
function serverHold(server) {
    pressTimer = window.setTimeout(function() {
        var id = server.dataset.server;
        clearTimeout(pressTimer);
        $('#fav-the-server').css("visibility", "visible");
        a.slide('fav-the-server', "left", 0, "200ms", "ease", "0ms", "1", "alternate", "running");

    },1000);
    return false;
}