Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery onclick和mouseup事件检测长按时如何修复多次执行_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jquery onclick和mouseup事件检测长按时如何修复多次执行

Javascript 使用jquery onclick和mouseup事件检测长按时如何修复多次执行,javascript,jquery,html,Javascript,Jquery,Html,我有一个函数,当我点击div元素时,它会打开引导模式,我的计算机上一切正常,但在移动设备上,当我点击div时,它会在元素周围显示css焦点,而不执行onclick方法中的函数,直到我第二次点击它。因此,我尝试使用下面的代码来检测对元素的任何单击,但长按除外,我认为这会有所帮助。当我单击函数执行一次时,一切都很好,但总是执行多次,它内部有ajax请求,也发送多次 var longpress=3000; var启动; $(文档).on('mousedown focusIn','.openIt',函

我有一个函数,当我点击
div
元素时,它会打开引导模式,我的计算机上一切正常,但在移动设备上,当我点击
div
时,它会在元素周围显示css焦点,而不执行
onclick
方法中的函数,直到我第二次点击它。因此,我尝试使用下面的代码来检测对元素的任何单击,但长按除外,我认为这会有所帮助。当我单击函数执行一次时,一切都很好,但总是执行多次,它内部有ajax请求,也发送多次

var longpress=3000;
var启动;
$(文档).on('mousedown focusIn','.openIt',函数(事件){
开始=新日期().getTime();
});
$(文档).on('mouseleave focusOut','.openIt',函数(事件){
开始=0;
});
$(文档)。在(“单击鼠标”上,'.openIt',函数(事件){
如果(新日期().getTime()>=(开始+长按)){
log(event.type,“是长按!”);
}否则{
//$.myfyncitionhere({……});
log(event.type,“is short press!”);
}
event.preventDefault();
});
.openIt{
颜色:#fff;
背景色:#000;
高度:30px;
宽度:50%;
}


打开项
只需从事件处理程序中删除
mouseup
事件

var longpress=3000;
var启动;
$(文档).on('mousedown focusIn','.openIt',函数(事件){
开始=新日期().getTime();
});
$(文档).on('mouseleave focusOut','.openIt',函数(事件){
开始=0;
});
$(文档).on(“单击”,'.openIt',函数(事件){
如果(新日期().getTime()>=(开始+长按)){
log(event.type,“是长按!”);
}否则{
//$.myfyncitionhere({……});
log(event.type,“is short press!”);
}
event.preventDefault();
});
.openIt{
颜色:#fff;
背景色:#000;
高度:30px;
宽度:50%;
}


未清项
仅使用
onclick
!对不起,我错了,我删除了我的评论,但是我想删除
单击
仍然可以解决当我单击
div
时的问题,有时它只添加焦点而不执行?@Peter你是什么意思?我不明白我的意思是,当我试图以这种方式执行我的函数时,因为有时在手机上,当我单击打开项时,它只会添加css焦点,而不执行要打开的函数,直到我第二次单击为止。这就是为什么我试图检测任何点击元素来打开我的item@Peter我已经更新了我的答案。您可以删除
mouseup
,以确保它在移动设备上工作。