0
入力中にキーが押された時間を確認しようとしています。ここ機能が遅く入力すると機能が実行されます
は私のjavascriptです:
var keyDownTimer = 0;
var keyUpTimer = 0;
var keyPressedCounter = 0;
var dt;
var keyDownDisplay = document.getElementById("keyDownTimer");
var keyPressedDisplay = document.getElementById("keyPressed");
keyDownDisplay.innerHTML = keyDownTimer;
keyPressedDisplay.innerHTML = keyPressedCounter;
function keypressed(){
keyPressedCounter++;
keyPressedDisplay.innerHTML = keyPressedCounter;
}
function keydown(){
dt = setInterval(addDownTime, 1);
}
function addDownTime(){
keyDownTimer++;
keyDownDisplay.innerHTML = keyDownTimer/1000;
}
function keyup(){
clearInterval(dt);
}
と私のhtml
<style>
div{
height:25px;
width:100px;
display:inline-block;
margin-right:10px;
}
</style>
</head>
<body>
<div id="keyUpTimer"></div><div id="keyDownTimer"></div><div id="keyPressed"></div>
<input id="textBox" type="text" onkeyup="keyup()" onkeydown="keydown()" onkeypress="keypressed()">
私は、テキストボックスに入力していて、すべてが正常に動作しますが、その後、何らかの理由で、keyDownTimerはちょうどに開始しますあたかもkeydown()が動かないかのように走ります。 私のコードは読みにくいですが、私はそのコードが正しいと確信しています。適切に動作することを確認してください。ゆっくりとタイプすると少し問題が解決するようですが、それでも無限に走ってしまいます。 ご協力いただければ幸いです。それが何をしているのかを説明できるなら、それはすばらしいことでしょう。
をし、その後、両方を解放し、Bを押してください?これは速く入力するときに頻繁に起こることです...(この場合、dtに何が起こるか考えてください!) – psmears