Javascript 未定义游标(..)
我想从jQuery BlockUI插件生成的模式中获取cursorX坐标。 当我尝试使用下面的代码执行此操作时,它会给出“cursorX未定义(…)”错误Javascript 未定义游标(..),javascript,jquery,Javascript,Jquery,我想从jQuery BlockUI插件生成的模式中获取cursorX坐标。 当我尝试使用下面的代码执行此操作时,它会给出“cursorX未定义(…)”错误 是的,它没有定义。你需要像这样用var定义 console.log(cursorX)//你看,这是一个未定义的,以前没有定义过的 var cursorX=“”;//默认值为空 var cursorY=”“//默认值为空 document.onmousemove=函数(e){ cursorX=e.pageX; cursorY=e.pageY;
是的,它没有定义。你需要像这样用
var
定义
console.log(cursorX)//你看,这是一个未定义的,以前没有定义过的
var cursorX=“”;//默认值为空
var cursorY=”“//默认值为空
document.onmousemove=函数(e){
cursorX=e.pageX;
cursorY=e.pageY;console.log(cursorX);
}
console.log(cursorX)//这是一个已定义的值。但是传递默认的空值。因为它是通过窗口加载显示的。不是在鼠标移动之后,而是在尝试访问之前未定义的cursorX,因为没有为变量分配内存,所以会出现引用错误
cursorX;
提升是JavaScript将声明移动到的默认行为
顶部
Javascript通常查找所有var变量\u name首先编码>并为其分配内存地址。这叫做
如果您没有使用并试图分配一个值,那么javaScript是宽容的,它将为您分配一个内存并存储该值
如果移动鼠标,您可以检查在出现引用错误后是否有权访问clientX
,因为脚本将为您创建内存
这里,
这里的问题是cursorX将在mousemove
中定义,但您试图在任何mousemove之前访问它
显而易见的解决方案是在使用它之前定义它。
var cursorX,cursorY代码>在函数之外,即使它在文件末尾定义,也可以工作
//这将起作用,但会产生未定义的错误,因为尚未将任何内容分配给cursorX。
console.log(cursorX);
var cursorX=0,cursorY=0;
document.onmousemove=函数(e){
cursorX=e.pageX;
粗略地=e.pageY;
console.log(cursorX);
}
console.log(cursorX)//这将打印0,因为到目前为止,我们已经为其指定了一个值。
//var cursorX,cursorY;这也适用于变量提升
您可以发布代码逻辑吗?
cursorX;
function(e){
cursorX = e.pageX;
cursorY = e.pageY;console.log('dsahg');
}