因此,从我查看的所有地方读到的内容,这就是我访问事件处理程序属性的方式:
canvas.addEventListener('onmousemove', traceMouse(e)); //Handler gets passed in as 'e'
function traceMouse(e) { //Then I could just use it like a normal parameter, right?
mouseX = e.clientX;
mouseY = e.clientY;
}
不幸的是,firebug坚持认为e没有定义。我完全不知道我哪里出错了,我可能再次犯了一些愚蠢的错误,而且我已经准备好咬掉自己的头了。
帮助?
答案 0 :(得分:0)
实际上,在addEventListener中,要传递的第二个参数是在触发事件时要调用的函数的名称。现在,你正在调用函数&传递e(未定义)。所以,代码应该是
canvas.addEventListener('mousemove',traceMouse);
事件对象将通过浏览器传递,因此您将能够获得clientX&收率
在任何情况下,您都需要将参数传递给函数,您可以使用闭包。 这是一个例子。 http://jsfiddle.net/parth1403/fVakB/