Долго нажимайте в JavaScript?

Действительно ли возможно реализовать "длинное нажатие" в JavaScript (или jQuery)? Как?

alt text
(источник: androinica.com)

HTML

Long press

JavaScript

$("a").mouseup(function(){
  // Clear timeout
  return false;
}).mousedown(function(){
  // Set timeout
  return false; 
});

111
задан Glorfindel 22 July 2019 в 21:08
поделиться

2 ответа

Нет никакой магии jQuery, только таймеры JavaScript.

var pressTimer;

$("a").mouseup(function(){
  clearTimeout(pressTimer);
  // Clear timeout
  return false;
}).mousedown(function(){
  // Set timeout
  pressTimer = window.setTimeout(function() { ... Your Code ...},1000);
  return false; 
});
158
ответ дан 24 November 2019 в 02:59
поделиться

Вы можете установить тайм-аут для этого элемента, когда мышь опущена, и сбросить его, когда мышь поднята:

$("a").mousedown(function() {
    // set timeout for this element
    var timeout = window.setTimeout(function() { /* … */ }, 1234);
    $(this).mouseup(function() {
        // clear timeout for this element
        window.clearTimeout(timeout);
        // reset mouse up event handler
        $(this).unbind("mouseup");
        return false;
    });
    return false;
});

При этом каждый элемент получает свой собственный тайм-аут.

2
ответ дан 24 November 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: