Wenn Sie das Keydown-Ereignis verwenden, wird es so lange ausgeführt, wie Sie es gedrückt halten. Jetzt muss ich es nur einmal implementieren, auch wenn ich es gedrückt halte.
Können Sie das Ausführungsintervall von Keydown festlegen? Kann es alle 400 ms ausgeführt werden, während eine bestimmte Taste gedrückt wird?
$(document).keydown(function(e){ //按下去就执行,按照事件类型来进行分类 var corelist = $('.corelist_item'); var readfloor = $('.J_read_floor'); if(corelist.length || readfloor.length){ if(e.keyCode == 87){ // w键 上一篇/楼 listJump(false,10,corelist); listJump(false,55,readfloor); } });
Code schreiben/Ich möchte auch Klavier spielen/Das Frontend ist nur ein Titel/Lebensläufe sammeln Keydown und Keyup sind ein Paar. Wenn die Seite dies zulässt, one() von jQuery kann nur einmal ausgeführt werden, wenn die Seite nicht aktualisiert wird, aber das Hinzufügen von Parametern ist anders. Es gibt nur ein Ereignis, wenn die Taste gedrückt und nicht losgelassen wird, aber das Keydown-Ereignis ist immer noch gebunden Die Taste nach unten wird losgelassen und erneut gedrückt. Hier ist ein Hausmittel, das Sie ausprobieren können ... Es ist hässlich und ungenau, aber JavaScript wäre nicht in der Lage, so viel Genauigkeit mit der Zeit zu erreichen. Das obige ist der detaillierte Inhalt vonWie führe ich das Keydown-Ereignis in Intervallen in JQuery aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Wenn Sie also den Tastendruck überwachen, können Sie den Tastendruck, der durch das Gedrückthalten der Taste ausgelöst wird, eliminieren.
Setzen Sie beispielsweise bool=true, bool=true während des Keyup; beurteilen Sie, ob bool während des keydown wahr ist, führen Sie es nur aus, wenn true, und dann bool=false.
neben der Beurteilung anhand von Parametern können Sie auch one() von jQuery verwenden, um es nur einmal auszuführen $(btn).one("keydown",function(){
//dosomething
});
(function() {
var lock;
var interval = 400;
$(document).keydown(function() {
var date = new Date();
var time = date.getTime();
if (typeof lock == 'undefined') {
lock = time % interval;
}
if (Math.abs(lock - time % interval) < 13) {
console.log(date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() + ':' + date.getMilliseconds());
//your code goes here!
}
}).keyup(function() {
lock = undefined;
});})();