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