2017-01-15 5 views
0

Ich versuche, einen Weg finden, zu erkennen, ob Taste gedrückt wurde/halten mit der Maus nach oben Ereignis in jQueryMosueup zu Halten und Drücken Ereignis

$("element").mouseup(function(event){ 
     callMe(); 
}); 

function callMe(){ 
    alert("called"); 
} 

Jede Hilfe wird groß sein.

+0

Und was ist das Problem? – Rajesh

+0

Ich möchte erkennen, ob Taste gedrückt wurde, aber ich kann nur mouseup Ereignis verwenden –

+0

Was passiert, wenn ich es auf 1 drücken und halten und dann verschiebe ich es zu einem anderen und release? – Rajesh

Antwort

1

Ich glaube, Sie können einen langen Druck feststellen, indem Sie eine Kombination aus mousedown- und mouseup-Ereignissen verwenden. Es berechnet im Grunde die Zeit, für die der Benutzer den Knopf hält.

Hier ist ein Beispielcode, den Sie ausprobieren können.

var longpress = 2000; // duration you consider a long press 
    var startTime; 

    $("#button").on('mousedown', function(e) { 
    startTime = new Date().getTime(); 
    }); 

    $("#button").on('mouseleave', function(e) { 
    startTime = 0; 
    }); 

    $("#button").on('mouseup', function(e) { 
    if (new Date().getTime() >= (startTime + longpress)) { 
     alert('long press!'); 
    } else { 
     alert('short press!'); 
    } 
    }); 
+0

ich kann mousedown nicht verwenden. Ich muss dies nur mit MouseUp-Ereignis erreichen –

+0

Ich glaube, Sie können eine drücken und halten nur, wenn Sie wissen, wann die Taste gedrückt und nicht gedrückt wurde. mouseUp-Ereignis allein reicht nicht aus, um einen langen Druck zu erkennen. Außerdem glaube ich nicht, dass es ein separates DOM-Ereignis zum Drücken und Halten gibt. – Piyush

+0

Ich weiß das, aber ich bin auf der Suche nach einer Arbeit. Wenn es möglich ist, –

Verwandte Themen