单纯使用js或者jq如何实现 手机web的长按事件 和按键事件

一个<li></li>它有两个事件,当长按超过2秒后执行funtionb;单单点击他的时候执行funtiona如何做?单纯的长按的,我会写,但是,两个都在一起的,长按完了... 一个<li></li> 它有两个事件,当长按超过2秒后执行funtion b;单单点击他的时候 执行funtion a
如何做?
单纯的长按的,我会写,但是,两个都在一起的,长按完了 他会执行长按的事件,但是那个单击的时候也会执行,怎么解决?

var timeout = undefined;
var obj = document.getElementsByClassName('touch');
for (var i = 0; i < obj.length; i++) {
obj[i].addEventListener('touchstart', function(event) {
timeout = setTimeout(function() {
var type = $(obj[i]).find('.AtFlag_s').val();
var info = "";
if (type == "0") {
info = "您确定取消关注?"
} else {
info = "您即将关注该班级!";
}
AppDaliog.confirm(info, "", function() {

update_Attention(obj[i]);
});
}, 1500);

}, false);
obj[i].addEventListener('touchend', function(event) {//
clearTimeout(timeout);
}, false);
}
上面代码是长按的代码,单击的就不写了 直接onclick的
展开
 我来答
平治上树Cx
推荐于2016-07-27
知道答主
回答量:5
采纳率:0%
帮助的人:6.9万
展开全部
$(function(){
var obj = document.getElementsByClassName('touch');
for (var i = 0; i < obj.length; i++) {
obj[i].addEventListener('touchstart', function(event) {
var i = 0;
var _this = $(this);
timer = setInterval(function(){
i+=10;
if(i >= 1000){
i = 0;
lognPress();
} else {
//这里写onclick要执行的事件
}
},10)

});
obj[i].addEventListener('touchend', function(event) {
clearTimeout(timer);
}, false);
}
})
var time = 0;
function lognPress(){
var type = $(obj[i]).find('.AtFlag_s').val();
var info = "";
if (type == "0") {
info = "您确定取消关注?"
} else {
info = "您即将关注该班级!";
}
AppDaliog.confirm(info, "", function() {
update_Attention(obj[i]);
});
}
追问
来晚了,我试了一下,发现是点击了就直接执行onclick的事件了,没有长按的,
我看了一下,发现这个代码逻辑有些问题啊,变量i,初始值0,每10秒变一次...那每次touchstar i都是为10的,也就是说不会去到i>=1000的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式