这是我的代码`
function currentCursPos(){
$(document).mousemove(function(e){ var pos= {"x":e.pageX,"y":e.pageY}; return pos });
}
function clrpckrTopPos(){
//var cursorPos={};
var cursorPos=currentCursPos();
if(cursorPos.y<$("#colorpickerDiv").height()){return cursorPos.y+$("#colorpickerDiv").height()}
if(cursorPos.y>$("#colorpickerDiv").height()){return cursorPos.y}//colorpickerDiv2 and colorpickerDiv have same height
} `
。 我得到'cursorPos未定义'的错误 。 任何想法如何实现从函数返回属性映射的任务。我犯了什么错误?
答案 0 :(得分:2)
currentCursPos
不会返回任何内容
从函数内部的mousemove
处理程序返回并不会使外部函数本身返回任何内容。
答案 1 :(得分:1)
您可以使用全局变量解决此问题:
var x = 0;
var y = 0;
$(document).mousemove(function(e){ x = e.pageX; y=e.pageY; });
function clrpckrTopPos(){
if(y<$("#colorpickerDiv").height()){return y+$("#colorpickerDiv").height()}
if(y>$("#colorpickerDiv").height()){return y}//colorpickerDiv2 and colorpickerDiv have same height
}
答案 2 :(得分:1)
只需将当前光标位置存储在mouseMove
上的全局变量中:
var pos;
$(document).mousemove(function(e) { pos = { x: e.pageX, y: e.pageY }; });
function clrpckrTopPos(){
if (pos.y < $("#colorpickerDiv").height())
return pos.y + $("#colorpickerDiv").height();
if (pos.y > $("#colorpickerDiv").height())
return pos.y;
}