使用onmousedown进行Longpress模拟,但也有onclick

时间:2012-09-30 19:56:33

标签: javascript jquery

我有以下HTML

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

我的JS看起来像:

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;
}

这一切都非常有效,这要归功于我之前关注过的帖子,但问题是它是一个触摸屏类型的应用程序并执行onclick

无论如何,这样做可以让我获得以下功能:

  

列出项目 - &gt;点击并按住1000毫秒 - &gt;执行serverHold并执行   不执行setServerID

  

列出项目 - &gt;点击,不要按住或保持不到1000毫秒 - &gt;   仅执行setServerID

谢谢!

1 个答案:

答案 0 :(得分:1)

只需保留一个标记,指示您是否在点击期间处理了长按:demo