我有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的持续时间?
答案 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);
});