Javascript 未定义游标(..)

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;

我想从jQuery BlockUI插件生成的模式中获取cursorX坐标。 当我尝试使用下面的代码执行此操作时,它会给出“cursorX未定义(…)”错误


是的,它没有定义。你需要像这样用
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');
}