日期:2014-05-16  浏览次数:20364 次

请教一个鼠标按下、移动的问题
    var selectedBall = -1;

    //鼠标点击时,判断是否选中了小球
    $("#bottomCanvas").mousedown(function(e) {
        var x = e.clientX;
        var y = e.clientY;

        var ballLength = balls.length;
        //判断是否点击到了某个球
        for (var i = 0; i < ballLength; i++) {
            var tmpBall = balls[i];
            var r = tmpBall.radius;
            if (x > tmpBall.x - r && x < tmpBall.x + r && y > tmpBall.y - r && y < tmpBall.y + r) {
                selectedBall = i;
                break;
            }
        }
        selectedBall = -1;
    });

    //鼠标移动时,显示鼠标的位置,用于调试
    $("#bottomCanvas").mousemove(function(e) {
        document.getElementById("coordinates").innerHTML = "coordinates:" + e.clientX + "," + e.clientY;
        if (selectedBall >=0) {
            alert(selectedBall);
            balls[selectedBall].x = e.clientX;
            balls[selectedBall].y = e.clientY;
        }
    });

请教,以上代码,mousedown事件没问题,可是无论如何执行不到mousemove的alert位置!
请各位大侠指教,拜谢!

------解决方案--------------------
如果你代码没有问题的话,应该是这一段的问题
 if (x > tmpBall.x - r && x < tmpBall.x + r && y > tmpBall.y - r && y < tmpBall.y + r),
有可能是selectedBall一直为-1,也就是说你的判断的问题