Javascript 点击事件未对移动目标开火
我正在编写一个javascript游戏,里面有一个移动的球。 当用户试图点击移动的球时,我想要一条警告消息。 它现在正在工作,但事件并不是每次都发生。。。看起来球移动得太快了,js引擎无法注意到球确实被点击了。 我正在Firefox18和Windows7上测试一个5年的cpu 以下是我的一些代码:Javascript 点击事件未对移动目标开火,javascript,javascript-events,Javascript,Javascript Events,我正在编写一个javascript游戏,里面有一个移动的球。 当用户试图点击移动的球时,我想要一条警告消息。 它现在正在工作,但事件并不是每次都发生。。。看起来球移动得太快了,js引擎无法注意到球确实被点击了。 我正在Firefox18和Windows7上测试一个5年的cpu 以下是我的一些代码: myBall = document.getElementById("myBall"); function move(){ myLeft += 20; myBall.style.left
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在这里会有什么不同吗?
谢谢。好的,要解决您遇到的问题,您需要为
鼠标向下
添加事件侦听器,而不是单击
这是因为,
click
要求鼠标按钮同时上下移动,并且正如@techfoobar所指出的那样,必须在目标元素上的同一位置进行操作(如果mousedown
和mouseup
的坐标不相等,则不会触发click
事件)。球的移动速度太快,无法满足上述条件,因此出现了问题。请注意,使用“请求动画帧”而不是“设置间隔”设置动画。可能球的移动速度太快,鼠标按钮无法上下移动?您是否尝试过为“mousedown”添加事件监听器?html5 canvas+kinetic.js有很多很酷的选项-->我在wwww.threeblokesfromchina.com上有一个示例球注意:如果mousedown
事件的鼠标坐标与mouseup
事件的鼠标坐标不同,则不会触发单击事件。i、 e.如果对象在mousedown
和mouseup
事件之间移动,单击
事件将不会触发。你可能应该考虑使用<代码>鼠标缩写< /Cord>?@卢卡斯,你应该先得到正确的指针。你应该把它作为答案贴出来。