16
var mdflag;
var count = 0;

document.addEventListener("mousedown",mdown,false);
    document.addEventListener("mouseup",mup,false);
}


function mdown()
{
    mdflag=true;
    while(mdflag)
    document.getElementById("testdiv").innerHTML = count++;

}
function mup()
{
    mdflag = false;
}

マウスが押されている間にコードを実行したいのですが、while(mousedown) を実行できることを示唆するものが見つからないので、マウスを離すとリセットされる mousedown のフラグを作成しようとしましたが、while ループが何であるかを信じています無限ループにはまってしまいます。

私が達成しようとしていることを助けるためのアドバイスはありますか?

4

3 に答える 3

6

別のイベントが処理される前に関数を終了する必要があるため、これはできませんが、マウスが上がるまで関数を繰り返し呼び出すことができます。

var timer;
document.addEventListener("mousedown", function(){
     timer=setInterval(function(){
          document.getElementById("testdiv").innerHTML = count++;
     }, 100); // the above code is executed every 100 ms
});
document.addEventListener("mouseup", function(){
    if (timer) clearInterval(timer)
});
于 2013-03-19T16:38:13.720 に答える