mousemove奇怪的行为

时间:2010-08-16 20:02:43

标签: javascript jquery

我正在尝试使用mousemove更改幻灯片的图像。但它不能正常工作。它只能在第一次正常工作,之后即使没有点击鼠标,也会认为单击了鼠标。 你可以在这里查看演示 http://unirazz.com/kb/html/movie.html

这是mousemove的代码

        var clicking = false;
        var pageX = 0;

        $('#movieShow').mousedown(function(e){
            clicking = true;
            pageX = e.pageX;            
        });

        $(document).mouseup(function(e){
            clicking = false;
            pageX = 0;
            //alert('h');
        })

        $('#movieShow').mousemove(function(e){
            if(clicking == false) return;

            // Mouse click + moving logic here
            //$('.movestatus').text('mouse moving');
            if(pageX == 0) return;
            if((e.pageX - pageX) > 0){
                var t = e.pageX - pageX;
                if(t%10 == 0){
                    pageX = e.pageX;
                    //console.log('right');
                    rightClick();
                }
            }
            else{
                var t = pageX - e.pageX;
                if(t%10 == 0){
                    pageX = e.pageX;
                    //console.log('left');
                    leftClick();
                }           
            }
        });

1 个答案:

答案 0 :(得分:0)

当你点击并按住并将鼠标拖到'movieShow'之外时,似乎会感到困惑。你的document.mouseup没有工作,因此它永远不会点击为false;

我认为您需要为'movieShow'定义一个与mouseup相同的mouseout

$('#movieShow').mouseout(function(e){
    clicking = false;
    pageX = 0;
})