单纯使用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的 展开
如何做?
单纯的长按的,我会写,但是,两个都在一起的,长按完了 他会执行长按的事件,但是那个单击的时候也会执行,怎么解决?
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的 展开
展开全部
$(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]);
});
}
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的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询