2013-06-08 2 views
3

초보자 질문.addEventListener mousemove on document

다음 코드는 준비된 문서에서 호출하는 함수의 일부입니다. 마우스를 움직일 때마다 현재 마우스 위치의 값을 영구적으로 반환하기위한 것입니다.

이상한 일 : 마우스를 문서 준비 상태로 옮기더라도 콘솔에 아무 것도 기록하지 않습니다. mouse_monitor-function은 다른 "mousedown"-eventlistener에서이 함수를 사용하고 콘솔에 현재 마우스 위치를 기록하기 때문에 작동합니다. 그 선 후

//Mouse Monitor 

    canvas.addEventListener('mousemove', mouse_monitor, false); 


//Mouse Monitor Request 
    var mouse = new Array(); 
    var mouse_monitor = function(e) { 
     var canvasOffset=$("#canvas").offset(); 
     var offsetX=canvasOffset.left; 
     var offsetY=canvasOffset.top; 
     mouse.x = e.pageX - offsetX; 
     mouse.y = e.pageY - offsetY; 
     return mouse; 
     console.log(mouse); 
    } 
+0

addEventListener가 mouse_monitor가 지정되기 전에 발생하면 addEventListener가 이벤트를 추가하지 않습니다. – Loris

답변

2
return mouse; 

모든 문은 실행되지 않습니다.

좋아, 그럼 뭔가 작업을 진행하고 점진적으로 수정/IT에 추가 : 당신이 아니니까하여 addEventListener()를 사용하지 않아야 당신이 jQuery를 사용하는 경우, 그래서

을하지만 당신은 "준비 문서"언급 크로스 브라우저 : 실패한 코드에 이르기까지의

var mouse_monitor = function(e) { 
    var x = e.pageX; 
    var y = e.pageY; 
    console.log(x, y); 
} 

$(document).ready(function() { 
    $(this).on('mousemove', mouse_monitor); 
}); 

또 다른 방법은 (CONSOLE.LOG하는 것입니다) 모든 변수와 그 값은해야으로 값이되지 않는 결정합니다.

+0

물론 미안합니다. 마지막 두 문장을 바꿔도 문제가 해결되지는 않지만 :( –