我究竟做错了什么?当我尝试使用它时,它会吐出错误:
无法读取未定义的属性'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");
}
});