0

我正在尝试设置一个事件以使用 touchstart 和 touchend 显示一些共享选项。这是本机应用程序中的一个非常标准的功能,但我在移动网络上没有看到太多。该事件将允许用户点击网站的主要内容区域,如果点击时间超过 1 秒,则会在屏幕上滑动一个选项框,显示用于共享页面内容的选项。

下面的函数适用于第一个事件,但如果用户多次触发该事件,它会在没有 1 秒触发事件的要求下触发。

任何人都可以提出更好的方法或看看为什么计时器每次都不起作用?

if ( typeof ontouchstart != 'undefined' && typeof ontouchend != 'undefined' ) { 
var touchStartOrClick = 'touchstart', touchEndOrClick = 'touchend'; 
} else {
var touchStartOrClick = 'click', touchEndOrClick = 'click'; 
};

function shareTog(){
    $('.sharing-pop').animate({width: 'toggle'});
}

var touchTrigger;

$('#content').bind(touchStartOrClick, function(){
    setInterval(function(){
        touchTrigger = true;
    }, 1000);
}).bind(touchEndOrClick, function(){
    window.clearInterval();
    if(touchTrigger == true){
        shareTog();
        touchTrigger = false;
    }
});

我知道使用 jQuery Mobile 会更容易做到这一点,但不幸的是这不是一个选择。

4

2 回答 2

1

zepto是您不错的选择。它的触摸模块提供了一个很好的事件处理程序。

或者你可以查看zepto touch的源码

于 2012-09-06T09:12:42.753 回答
0

我明白你的意思,但我认为这在网络浏览器中不是一个好的解决方案。例如,在 Android 上,当您长按网页上的内容时,您已经得到了一个弹出窗口。您将不得不阻止该事件处理程序,但这意味着您将获得本地化。

于 2012-09-04T17:03:27.303 回答