jquery - 立即点击mousedown或触摸

时间:2015-11-10 11:14:30

标签: javascript jquery internet-explorer touch

我有42" touchdisplay显示IE9的网页。

它上面有许多锚点。有时,用户不仅会在短时间内点击一个链接,而是会停留在该链接上,直到他停止触摸才会发生任何事情。

作为第一个解决方案,我向用户显示了他应该用手指触摸板的消息。

        var timeoutLongTouch;
        $(".long-touch").on('mousedown.LongTouch', function () {
            timeoutLongTouch = setTimeout(function () {
                $("#warning").show();
            }, 1000);
        })
        .on('mouseup.LongTouch', function () {
            clearTimeout(timeoutLongTouch);
            $("#warning").hide();
        });

这很好用。但是现在我更愿意将longtouch事件更改为立即点击。

我尝试了几种方法 - f.e.

    $(".long-touch").on('mousedown.LongTouch', function () {
        var item = $(this);
        setTimeout( function () {
            console.log(item);
            $(item).click();
        }, 300);
    });

但是,无论我尝试点击什么,都不会被解雇,直到用户抓住他的手指。

有没有办法在用户触摸链接时将longtouch转换为移动点击,而不是取决于topuch的持续时间?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用以下内容吗?

$('.long-touch').on('touchstart click', function(event){
    event.stopPropagation();
    event.preventDefault();

   //do your stuff
});

对于触摸,您需要使用touchstart,我们还会听取普通桌面用户的点击。

答案 1 :(得分:0)

我找到了解决方案。 @ Dirk-Jan的想法与不触发点击,但只是引用href位置就可以了。

    $('.long-touch').on('mousedown.LongTouch touchstart click', function(event){
        event.stopPropagation();
        event.preventDefault();
        var item = $(this);
        setTimeout( function () {
            var dest = item.attr('href');
            window.location.href = dest;
        }, 300);
    });