Javascript 移动定时触摸事件

Javascript 移动定时触摸事件,javascript,jquery,html,css,mobile,Javascript,Jquery,Html,Css,Mobile,我正在尝试设置一个事件,使用touchstart和touchend显示一些共享选项。这在本地应用程序中是一个相当标准的功能,但我在移动网络上很少看到它。该事件将允许用户点击网站的主要内容区域,如果点击时间超过1秒,则屏幕上将滑动一个选项框,显示共享页面内容的选项 下面的函数适用于第一个事件,但是如果用户触发事件不止一次,它就会触发,而不需要1秒的时间来触发事件 有谁能建议一个更好的方法,或者看看为什么计时器每次都不工作 if ( typeof ontouchstart != 'undefined

我正在尝试设置一个事件,使用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做这件事要容易得多,但不幸的是这不是一个选项。

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

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


或者你可以查看

的源代码,我明白你的意思,但是大多数设备在移动网络上长按的时间是1秒以上,所以在这个例子中,我可以将其设置为1/2秒。对我来说,这听起来不是个好主意。我祖父按下我的手机不到1秒钟,这样我的弹出窗口不会被触发,但你的弹出窗口会被触发。