6

我正在编写一个带有移动球的 javascript 游戏。当用户设法单击移动球时,我想要一条警报消息。它现在正在工作,但事件并不是每次都触发......看起来球移动得太快,js引擎无法注意到球确实被点击了。我正在一个 5 岁的 cpu 上测试 Firefox 18、windows 7 ...

这是我的一些代码:

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 指出的那样 - 它必须在目标元素上的同一位置完成(如果mousedown和的坐标mouseup不相等,click则不会触发事件)。球只是移动得太快而无法满足上述条件,因此出现了问题。

于 2013-02-10T08:58:16.587 回答