我想创建一个自定义事件,可以像
一样使用$('.entry').on('click', function().......
我需要它来检测移动设备的长按。我想这样称呼它:
$('.entry').on('longtap', function().......
我了解了很多有关创建事件的信息,但是大多数方法是使用绑定和触发器。那么有办法吗?
答案 0 :(得分:1)
这是一种实现长按的方法:
var clickStart;
document.getElementById("cool_button").addEventListener('mousedown', function() {
console.log('mouse down');
this.clickStart = new Date().getTime();
});
document.getElementById("cool_button").addEventListener('mouseup', function() {
console.log('mouse up');
if ((new Date().getTime() - this.clickStart) >= 1000) {
console.log('this is a long tap');
}
});
<button id="cool_button">i'm a long tap button</button>
答案 1 :(得分:0)
答案 2 :(得分:0)
如here 所述,您无需为longtap创建自定义事件,只需要js计时器和两个已经存在的事件,例如mouseup,mousedown:
var pressTimer;
$(".entry").mouseup(function(){
clearTimeout(pressTimer);
// Clear timeout
return false;
}).mousedown(function(){
// Set timeout
pressTimer = window.setTimeout(function() {
console.log("hi!")
},1000);
return false;
});
我为你做了一个榜样