在mouseup和mousedown事件之间切换

时间:2013-12-26 13:59:08

标签: jquery

“mousedown”事件正常,而“mouseup”事件则没有。 “mouseup”事件如何递归调用“down()”?

$(document).ready(function(){
    function fly(){
        $("img").animate({top :'-=50px',left:'+=50px'},1000);
    }
    function down(){
        $("img").animate({top:'+=50px',left:'+=50px'},1000);
    }

    $( "button" ).mouseup(function() {
        setInterval(down,1000)
    }).mousedown(function() {
        setInterval(fly,1000)
    });
});

1 个答案:

答案 0 :(得分:0)

你应该清除你的间隔,否则飞行和向下功能不会停止调用,并且也会被你的间隔的多个实例调用。这也是为什么确保您尝试创建的间隔被清除的好习惯。

您可能还希望在文档正文上使用mouseup间隔。否则当人将鼠标移离按钮时,鼠标注册不会被注册。

$(document).ready(function(){
    var downInterval, upinterval;

    function fly(){
        $("img").animate({top :'-=50px',left:'+=50px'},1000);
    }
    function down(){
        $("img").animate({top:'+=50px',left:'+=50px'},1000);
    }

    $( "button" ).mousedown(function() {
        clearInterval(downInterval);
        clearInterval(upInterval);
        downInterval = setInterval(fly,1000);
    });

    $( "body" ).mouseup(function() {
        clearInterval(upInterval);
        clearInterval(downInterval);
        upInterval = setInterval(down,1000);

    });
});