0
function getMousePos(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
    };
}

setInterval(function (evt) {
    if (frame < 4) {
        frame += 1;
    } else {
        frame = 0;
    }
    var mousePos = getMousePos(canvas, evt);
    // ...
}, 500);

您好,我是 jQuery/JavaScript 的新手,为什么会evt.clientX抛出异常

无法读取未定义的属性

?

4

1 回答 1

0

我认为这将捕获 evt 论点:

var test;
function getMousePos(canvas, evt) {
    test = evt;
    var rect = canvas.getBoundingClientRect();
    return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
    };
}

setInterval(function (test) {
    if (frame < 4) {
        frame += 1;
    } else {
        frame = 0;
    }
    var mousePos = getMousePos(canvas, test);
    // ...
}, 500);

*编辑* 此代码完全不正确,请尝试阅读:如何确定鼠标位置

于 2013-04-15T15:06:21.223 回答