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

时间:2018-09-10 18:41:22

标签: javascript html css

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

  

无法读取未定义的属性'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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

控制台错误非常清楚地解释了该问题-event未定义。在代码中,唯一存在event变量的位置是在mousemove事件的回调中(该位置是function参数)。因此,您只需要在回调函数中移动相关代码-就像这样:

$( document ).on( "mousemove", function( event ) {
  $( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY );
  var x = event.pageX; 
  if (x > 1200)
  {
    window.alert("Working");
  } 
});