绑定长按事件,同时支持绑定点击事件(PC,移动端均支持)
1. HTML
<div>
<ul>
<li onmousedown="longpress(this, selGoods(this);)" onmouseup="longpress(this, fnclick(this);)" ontouchstart="longTouchPress(this, selGoods(this);)" ontouchmove="longTouchPress(this, fnclick(this);)" ontouchend="longTouchPress(this, fnclick(this));">
测试
</li>
</ul>
</div>
2.js
var time_longpress;
var longPressType=2;
function longpress(obj, selGoodsFunc) {
longPressType=2;
time_longpress = setTimeout(function() {
time_longpress = 0;
longClick(obj);
}, 500);
obj.onmouseout = function() {
clearTimeout(time_longpress);
time_longpress = 0;
}
obj.onmouseup = function() {
clearTimeout(time_longpress);
if (time_longpress != 0) {
eval(selGoodsFunc);
}
}
}
function longTouchPress(obj, selGoodsFunc) {
time_longpress = setTimeout(function() {
time_longpress = 0;
longClick(obj);
}, 500);
obj.ontouchmove = function() {
clearTimeout(time_longpress);
time_longpress = 0;
}
obj.ontouchend = function() {
clearTimeout(time_longpress);
if (longPressType==2) {
longPressType=1;
time_longpress = 0;
return;
}else if (time_longpress != 0&&longPressType==1) {
eval(selGoodsFunc);
}
}
}
function fnclick(obj){
clearTimeout(time_longpress);
}
function longClick(obj) {
doSomething
}