【问题标题】:Why the event.pageY in mousemove event could not be updated when mouse moves?为什么鼠标移动时 mousemove 事件中的 event.pageY 无法更新?
【发布时间】:2012-04-25 09:53:22
【问题描述】:

mousemove 事件被触发时,我想使用当前的event.pageY 值。但似乎我的event.pageY 值没有更新。这是我的代码的一部分(它已经在mousemove事件的回调函数中):

 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)会随着鼠标的移动而自动更新,但第二个没有更新,它似乎保留了deltaY中计算的值。那么当鼠标在内部“if”中移动时,如何获得更新的event.pageY 值?

【问题讨论】:

  • 除非您省略了一些代码,否则我看不出为什么您的 console.log 调用会吐出不同的值。您确定您没有对条件执行有时发出一个值有时发出两个值感到困惑吗?

标签: javascript dom-events mousemove


【解决方案1】:

event.pageY 不会自动更新,它是事件对象的一个​​属性,在事件触发时生成,因此它在事件处理程序中是常量。

【讨论】:

  • 我说它是我代码的一部分,这意味着它已经在mousemove事件的回调函数中。这就是为什么我说第一个console.log(event.pageY)会自动更新,第二个没有。
猜你喜欢
  • 1970-01-01
  • 2014-09-18
  • 2012-02-04
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多