Примеры jQuery-обработчиков для долгих нажатий на кнопки, ссылки и другие элементы.
В данном примере при обычном нажатии на кнопку сработает действие №1. Если кнопка была жата более одой секунды, то единоразово (с помощью setTimeout) сработает действие №2.
<button id="button" type="button">Кнопка</button>
<script>
$("#button").click(function(){
/* Действие №1 (при обычном клике) */
}).mouseup(function(){
clearTimeout(pressTimer);
return false;
}).mousedown(function(){
pressTimer = window.setTimeout(function(){
/* Действие №2 (при долгом нажатии) */
}, 1000);
return false;
});
</script>
Пример в действии:
Во втором примере при обычном нажатии на кнопку сработает действие №1. Если кнопка была жата, то действие №2 сработает циклично, с периодом указанным в setInterval() (100 мс).
<button id="button" type="button">Кнопка</button>
<script>
var pressTimer;
$("#button").click(function(){
/* Действие №1 (при обычном клике) */
}).mouseup(function(){
clearTimeout(pressTimer);
return false;
}).mousedown(function(){
pressTimer = window.setInterval(function() {
/* Действие №2 (при долгом нажатии) */
}, 100);
return false;
}).mouseout(function(){
clearTimeout(pressTimer);
});
</script>