2012-05-05 5 views
0

그래서 나는 사방이 검사에서 읽고있는 무슨에서,이 내가 이벤트 핸들러의 속성에 액세스 할 방법은 다음과 같습니다는 자바 스크립트 : 데 문제가 액세스하는 이벤트 핸들러

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; 
    } 

불행하게도 불을 지르고 전자가 정의되어 있지 않은 것을 주장한다. 나는 어디서 잘못되었는지 전혀 몰랐다. 아마 다시 바보 같은 실수를 한 것 같다. 나는 내 머리를 질질 준비가되어있다.

도움 말?

답변

0

실제로 addEventListener에서 pass의 두 번째 인수는 이벤트가 발생했을 때 호출 할 함수의 이름입니다. 이제는 함수 &을 e (정의되지 않음)라고 부르겠습니다. 그래서 코드는

canvas.addEventListener('mousemove',traceMouse); 

해야합니다 그리고 당신은는 clientX & Y.

을받을 수 있도록 이벤트 객체는 브라우저에 의해 전달됩니다 그리고 어떤 경우에 당신은 당신이 할 수 작동하려면 인수를 전달해야 폐쇄를 사용하십시오. 다음은 예제입니다. http://jsfiddle.net/parth1403/fVakB/

관련 문제