Si vous utilisez l'événement keydown, alors il continuera à s'exécuter tant que vous le maintiendrez enfoncé. Maintenant, je dois l'implémenter une seule fois, même si je le maintiens enfoncé.
Pouvez-vous définir l'intervalle d'exécution du keydown ? Peut-il être exécuté toutes les 400 ms en appuyant sur une certaine touche ?
$(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); } });
Écrire le code/Je veux aussi jouer du piano/Le front-end n'est qu'un titre/Collecter les CV Les touches enfoncées et les touches enfoncées sont un paire. Si la page le permet, utiliser le one() de jQuery n'est exécuté qu'une seule fois lorsque la page n'est pas actualisée, mais l'ajout de paramètres est différent lorsque vous appuyez sur la touche et ne la relâchez pas, il n'y a qu'un seul événement, mais lorsque la touche est relâchée et enfoncée à nouveau. , l'événement keydown est toujours lié. Voici un remède maison à essayer... C'est moche et inexact, mais JavaScript ne serait pas en mesure d'atteindre autant de précision à temps. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Donc, si vous surveillez le keyup, vous pouvez éliminer le keydown déclenché lorsque la touche est maintenue enfoncée.
Par exemple, définissez bool=true, bool=true pendant le keyup ; jugez si bool est vrai pendant le keydown, exécutez-le uniquement s'il est vrai, puis bool=false.
en plus de juger par paramètres, vous pouvez également utiliser one() de jQuery pour l'exécuter une seule fois $(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;
});})();