Я хочу обнаружить, что пользователь дважды коснулся экрана ipad или iphone.
Существует ли javascript-событие, которое обеспечит эту функциональность?
Могло бы быть поздним (На самом деле да, чертовски поздно), но чистое и легкое решение JS для тех, которые скрываются в будущем:
var tapped="";
function dbtapper(elem=false,arg1, arg2, arg3, timer=1400){
if(tapped==""){
//Here is single tap
tapped = setTimeout(function(){tapclean()}, timer)
lastclick = elem;
//variable lastclick is to prevent double clicking from happen
//when clicking different object with double-click listener.
} else if(lastclick==elem){
//Here is double tap, if you want more (triple&beyond),
//add doubletap/tripletap checker variable into tapclean().
//and set it to true here!, example included.
//you could also add more setTimeout to var-tapped so user will
//have more time to do triple&up taps.
tapclean();
//doubletapped=true;
mypersonalfunc(arg1, arg2, arg3);
} else {
tapped = setTimeout(function(){tapclean()}, timer);
lastclick = elem;
}
}
function tapclean(){
clearTimeout(tapped);
tapped="";
//doubletapper=false;
}
С этим можно легко сделать единственное событие касания, дважды, трижды, в-четвертых... к бесконечности и вне!
Уведомление: для использования проверки элемента вызовите функцию как:
dbtapper(YOURELEMENT), ie: <span onclick="dbtapper(this)">Click Me</span>
Это не вызвало tho, можно использовать его без очень хорошо (dbtapper()
), но если необходимо передать аргумент в функцию, удостоверяются, что Вы вводите ложь для первого аргумента, если Вы не указываете на него на элемент.
Without element pointer: dbtapper(false,yourarguments)
With element pointer: dbtapper(document.getElement*******,yourarguments)
Alternatively, you can use an unique elem arg for each element:
dbtapper('omega',yourarg) or dbtapper(69,yourarg)
Though this is not recommended if you have a huge amount of double tapping elements.