これはマルチカーネルの移動に使用しているコードです(左上を上にします).5000のようにタイムアウト機能を追加する必要がありますアニメーションは次のクリックがトリガーされる前に完了するための時間があります。jQueryのキー押下機能に遅延/タイムアウトを追加するには
function checkKey(e){
switch (e.keyCode) {
case 40:
//alert("down");
$("#down").trigger("click");
break;
case 38:
//alert("up");
$("#up").trigger("click");
break;
case 37:
//alert("left");
$("#left").trigger("click");
break;
case 39:
//alert("right");
$("#right").trigger("click");
break;
}
}
// Call checkKey on key press
if ($.browser.mozilla) {
$(document).keypress(checkKey);
} else {
$(document).keydown(checkKey);
}
UPDATE:
私は解決策を見つけることになりました。私はおそらくこれを行うためにはるかにクリーンな方法があることを知っているが、私はどのように私の厄介さを許すのか分からない。
// Set Time variable
var checkTime = 0;
// Call checkKey on key press
if ($.browser.mozilla) {
$(document.documentElement).keypress(function (event) {
// set variable to current time
var currentTime = new Date()
// See if Now's current time is 400 past the old current time
if((currentTime.getTime() - checkTime) > 400){
// If so then fire the triggers.
// Using if seemed to limit the inputs to a single keystroke
if (event.keyCode == 40) {
$("#down").trigger("click");
} else if (event.keyCode == 38) {
$("#up").trigger("click");
} else if (event.keyCode == 37) {
$("#left").trigger("click");
} else if (event.keyCode == 39) {
$("#right").trigger("click");
}
// Reset current time.
checkTime =currentTime.getTime();
}
});
} else {
$(document.documentElement).keydown(function (event) {
// set variable to current time
var currentTime = new Date()
// See if Now's current time is 400 past the old current time
if((currentTime.getTime() - checkTime) > 400){
// If so then fire the triggers.
// Using if seemed to limit the inputs to a single keystroke
if (event.keyCode == 40) {
$("#down").trigger("click");
} else if (event.keyCode == 38) {
$("#up").trigger("click");
} else if (event.keyCode == 37) {
$("#left").trigger("click");
} else if (event.keyCode == 39) {
$("#right").trigger("click");
}
// Reset current time.
checkTime =currentTime.getTime();
}
});
}
これは、ユーザーを困らせるために起こっている...彼らは、キーを押して、文句を言わないと予想結果を得る - なぜ完了するには、[停止()](http://api.jquery.com/stop/)を使用しませんアニメーションと次の開始? – ManseUK
私は3つの写真を先に飛ばしようとしていて、次のキーを押す前に各ターンを待たなければならなかったので、私は真剣に私を悩ますだろうから、 "ロック"よりも遅れていくだろう。 – Anthony
問題は、現在のスライドの位置を追跡するために、.active(ul.active)と.active-li(ul.active li.active-li)を移動していることです。ユーザーが矢印をあまりに速くたたくと、それが先に進んでしまうこともあります。 –