单击事件未在移动目标上触发

时间:2013-02-10 08:20:44

标签: javascript javascript-events

我正在编写一个带有移动球的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会在这里有所作为吗? 感谢。

1 个答案:

答案 0 :(得分:3)

好的,要解决您遇到的问题,您需要为mousedown而不是click添加事件监听器。

这是因为click需要鼠标按钮向下和向上,并且 - 正如@techfoobar所指出的 - 它必须在目标元素的同一位置完成(如果mousedown的坐标和mouseup不相等,click事件不会被触发)。球只是移动太快而无法满足上述条件,因此出现了问题。