我正在编写一个带有移动球的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会在这里有所作为吗? 感谢。
答案 0 :(得分:3)
好的,要解决您遇到的问题,您需要为mousedown
而不是click
添加事件监听器。
这是因为click
需要鼠标按钮向下和向上,并且 - 正如@techfoobar所指出的 - 它必须在目标元素的同一位置完成(如果mousedown
的坐标和mouseup
不相等,click
事件不会被触发)。球只是移动太快而无法满足上述条件,因此出现了问题。