基本上,当我使用JQuery的.mousedown函数点击并按住按钮时,我希望我的播放器移动。问题是,玩家不会继续向左移动,他只移动一次。我希望他继续向左移动,直到我做鼠标。
这是我的代码:
$('#arrowRight').mousedown(function() {
$('#player').animate({'left':'+=20px'});
});
有什么想法吗?
答案 0 :(得分:1)
试试这个:
var isDown = false;
$arrowRight = $("#arrowRight");
$arrowLeft = $("#arrowLeft");
$arrowRight.mousedown(function(){isDown = true;});
$arrowLeft.mousedown(function(){isDown = true;});
$(document).mouseup(function(){
if(isDown){
isDown = false;
}
});
$arrowRight.mousedown(function() {movePlayer('+=20');});
$arrowLeft.mousedown(function() {movePlayer('-=20');});
function movePlayer(intMovement){
$( "#player" ).animate({
'left': intMovement +'px'
}, 100, function() {
if (isDown){
movePlayer(intMovement);
}
});
}
<强> Check JSFiddle Demo 强>
答案 1 :(得分:0)
查看此链接 http://remysharp.com/2006/12/15/jquery-mousehold-event/ 用于mousehold事件的插件。它适用于您的情况。 您也可以通过设置鼠标按下事件的时间间隔来编写自己的时间间隔,每0.1秒触发一次。我相信上面的插件也是如此,但是现成的。 HTH。