Javascript 启用双击事件,同时允许使用Jquery滚动
我一直在使用Cordova/Phonegap开发移动应用程序,这次我不得不在一个特定表的行上启用双击。我不想使用插件或其他库,因为它只是应用程序的一部分我如何在Javascript上检查双击?所以我搜索了“我如何在Javascript中检查双击?”,瞧!在这篇文章中使用@mfirdaus-answer,我解决了这个问题。但我谈到另一个问题,我不能滚动。因此,我搜索了“如何在检查双击时启用滚动?”并发现答案非常有用 我编译了这两个答案,以创建一个函数,在给定元素上附加双击事件:Javascript 启用双击事件,同时允许使用Jquery滚动,javascript,jquery,touch-event,Javascript,Jquery,Touch Event,我一直在使用Cordova/Phonegap开发移动应用程序,这次我不得不在一个特定表的行上启用双击。我不想使用插件或其他库,因为它只是应用程序的一部分我如何在Javascript上检查双击?所以我搜索了“我如何在Javascript中检查双击?”,瞧!在这篇文章中使用@mfirdaus-answer,我解决了这个问题。但我谈到另一个问题,我不能滚动。因此,我搜索了“如何在检查双击时启用滚动?”并发现答案非常有用 我编译了这两个答案,以创建一个函数,在给定元素上附加双击事件: var tappe
var tapped = false;
var isDragging = false;
function attachDoubleTap(elem, callbacks) {
callbacks = callbacks || {};
callbacks.onSingleTap = callbacks.onSingleTap || function() {}
callbacks.onDoubleTap = callbacks.onDoubleTap || function() {}
$(document)
.on('touchstart', elem, function(e) {
$(window).bind('touchmove', function() {
isDragging = true;
$(window).unbind('touchmove');
});
})
.on('touchend', elem, function(e) {
var wasDragging = isDragging;
isDragging = false;
$(window).unbind("touchmove");
if (!wasDragging) { //was clicking
//detect single or double tap
var _this = $(this);
if(!tapped){ //if tap is not set, set up single tap
tapped=setTimeout(function(){
tapped=null
//insert things you want to do when single tapped
callbacks.onSingleTap(_this);
},200); //wait 300ms then run single click code
} else { //tapped within 300ms of last tap. double tap
clearTimeout(tapped); //stop single tap callback
tapped=null
//insert things you want to do when double tapped
callbacks.onDoubleTap(_this);
}
}
})
}
$(文档).ready(函数(){
attachDoubleTap(“#画布”{
onSingleTap:function(){
$('.msg').text('single-tap');
},
onDoubleTap:function(){
$('.msg').text('double-tap');
},
onMove:function(){
$('.msg').text('moved');
}
});
});
var=false;
var IsDraging=错误;
函数attachDoubleTap(元素、回调){
回调=回调| |{};
callbacks.onSingleTap=callbacks.onSingleTap | |函数(){}
callbacks.onDoubleTap=callbacks.onDoubleTap | |函数(){}
callbacks.onMove=callbacks.onMove | |函数(){}
$(文件)
.on('touchstart',元素,功能(e){
$(窗口).bind('touchmove',function(){
IsDraging=true;
callbacks.onMove();
$(窗口)。解除绑定('touchmove');
});
})
.on('touchend',元素,功能(e){
var WasDraging=IsDraging;
IsDraging=错误;
$(窗口)。解除绑定(“触摸移动”);
如果(!wasdrading){//正在单击
//检测单抽头或双抽头
var_this=$(this);
如果(!tapped){//如果未设置抽头,则设置单个抽头
点击=设置超时(函数(){
抽头=空
//插入单键点击时要执行的操作
callbacks.onSingleTap(_this);
},200);//等待300毫秒,然后运行单击代码
}否则{//在最后一次点击300毫秒内点击。双击
clearTimeout(点击);//停止单点击回调
抽头=空
//插入双击时要执行的操作
回调。onDoubleTap(_this);
}
}
})
}
正文{
字体系列:arial;
}
#帆布{
宽度:500px;
高度:450px;
背景色:#b0dddf;
边框:1px实心#ccc;
}
味精{
边框:1px实心#ccc;
保证金:0自动;
宽度:300px;
文本对齐:居中;
}
- 试着敲一下
- 试着敲两下
- 尝试点击并拖动
我通常使用一个名为“推荐”的库