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



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

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

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

$( 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>

控制台错误非常清楚地解释了这个问题 -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");
} 
});

最新更新