2012-04-25 2 views
0

mousemove 이벤트가 발생하면 현재 event.pageY 값을 사용하고 싶습니다. 하지만 내 event.pageY 값이 업데이트되지 않는 것 같습니다.마우스가 움직일 때 mousemove 이벤트의 event.pageY를 ​​업데이트 할 수없는 이유는 무엇입니까?

var deltaX = self.mouse.startX - event.pageX, 
    deltaY = self.mouse.startY - event.pageY; 
if (self.mouse.endTime - self.mouse.startTime < 300){     
       // Drag down 
       console.log(event.pageY); // 1 
       if(Math.abs(deltaX) < Math.abs(deltaY) && deltaY < 0){ 
        console.log(event.pageY); // 2 
      .... 

처음을 console.log (event.pageY)는 마우스 움직임에 따라 자동으로 업데이트됩니다, 두 번째는 포함하지 않습니다 : 여기에 내 코드의 일부는 (은 MouseMove 이벤트의 콜백 함수에 이미)입니다 델타 Y로 계산 된 값을 유지하는 것 같습니다. 그렇다면 내부 "if"에서 마우스가 움직일 때 어떻게 업데이트 된 event.pageY 값을 얻을 수 있습니까?

+0

일부 코드를 생략하지 않으면 console.log 호출이 다른 값을 뱉어내는 이유를 알 수 없습니다. 조건부 실행에 혼란스러워하지 않고 때때로 한 가지 가치를 내고 때로는 두 가지를 내놓을 수 있습니까? –

답변

1

event.pageY는 자동으로 업데이트되지 않고 이벤트가 트리거 될 때 생성되는 이벤트 객체의 속성이므로 이벤트 처리기 내에서 상수입니다.

+0

나는 그것이 내 코드의 일부라고 말했다. 그것은 이미 mousemove 이벤트의 콜백 함수에 있음을 의미한다. 그래서 내가 첫 번째 콘솔을 말한 것이다 .log (event.pageY)는 자동으로 업데이트되고 두 번째 콘솔은 그렇지 않다. – chaonextdoor

관련 문제