6

私は動くボールを使ってJavaScriptゲームをコーディングしています。ユーザーが移動するボールをクリックしたときにアラートメッセージが必要です。現在は機能していますが、イベントが毎回発生しているわけではありません...ボールの動きが速すぎて、jsエンジンがボールが実際にクリックされたことを認識できないようです。私はFirefox18、5年前のCPUのWindows7でテストしています...

これが私のコードの一部です:

myBall = document.getElementById("myBall");
function move(){
    myLeft += 20;
    myBall.style.left = myLeft + "px";
}    
myTimer = window.setInterval(move, 10);
...
myBall.addEventListener("click", function(){alert("win")});

より正確に動作する小さな移動ターゲットにクリックイベントリスナーを設定する方法はありますか?jQueryはここで何か違いがありますか?ありがとう。

4

1 に答える 1

5

mousedown問題を解決するには、 の代わりに のイベント リスナーを追加する必要がありますclick

これは、clickマウス ボタンを上下に移動する必要があり、@techfoobar が指摘したように、ターゲット要素の同じ場所で実行する必要があるためです ( と の座標mousedownmouseup等しくない場合、clickイベントは発生しません)。ボールの動きが速すぎて前述の条件を満たすことができないため、問題が発生します。

于 2013-02-10T08:58:16.587 に答える