如何检查鼠标光标是否超过某个x坐标?

问题描述 投票:0回答:2

我究竟做错了什么?当我尝试使用它时,它会吐出错误:

无法读取未定义的属性'pageX'。

这里的目标是运行检查以查看鼠标光标是否通过某个x位置。

$( document ).on( "mousemove", function( event ) {
  $( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY );
});

var x = event.pageX; 
if (x > 1200)
{
  window.alert("Working");
}
body {
  background-color: #eef;
}
div {
  padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="log"></div>
javascript html css
2个回答
1
投票

您正在尝试评估定义的函数之外的事件。将该代码移到函数内部,它将起作用。

$( document ).on( "mousemove", function( event ) {
$( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY );

 var x = event.pageX; 
 if (x > 1200) {
  window.alert("Working");
 }
});
body {
  background-color: #eef;
}
div {
  padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="log"></div>

0
投票

控制台错误很清楚地解释了这个问题 - event未定义。代码中event变量在范围内的唯一位置是mousemove事件的回调(它是函数参数)。所以你只需要在回调函数中移动相关代码 - 就像这样:

$( document ).on( "mousemove", function( event ) {
  $( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY );
  var x = event.pageX; 
  if (x > 1200)
  {
    window.alert("Working");
  } 
});
© www.soinside.com 2019 - 2024. All rights reserved.