0

我有以下 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;
}

这一切都非常有效,这要归功于我在 SO 上查找的以前的帖子,但问题是它是一个触摸屏类型的应用程序,它执行onclick

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

List Item -> Click and Hold for 1000ms -> Execute serverHoldand do not execute thesetServerID

列表项 -> 点击不按住或按住少于 1000ms ->setServerID仅执行。

谢谢!

4

1 回答 1

1

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

于 2012-09-30T20:17:13.393 回答