2012-03-18 53 views
0

這裏返回酒店的地圖是我的代碼`的Javascript:從功能

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

什麼是這些功能的整體意圖是什麼?你想知道某個事件發生後鼠標的位置?或者你是否想要對鼠標位置作出反應? – natedavisolds 2012-03-18 16:29:27

回答

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 
} 
+0

我在上面的代碼中使用了這段代碼。這裏clrpckrTopPos()似乎不起作用:$(「#colorpickerDiv」)。css({「left」:($(this).offset()。left)+40,「top」:clrpckrTopPos()}); – GILL 2012-03-18 16:38:52

+0

嘗試使用警報檢查'clrpckrTopPos()'返回的值,以防萬一它返回奇怪的東西 – aurbano 2012-03-18 16:45:19

2

currentCursPos不返回任何東西。
從函數內部的mousemove處理函數返回不會使外部函數本身返回任何內容。

+0

正確指出。 – GILL 2012-03-18 16:13:12

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; 
} 
+0

您應該用pos替換cursorPos。此外,x和y應該包含在引號之間。 – GILL 2012-03-22 20:20:38

+0

哎呀,感謝'cursorPos' catch!但引號僅用於JSON。純JavaScript對象標識符不需要用引號引起來。 – benesch 2012-03-22 23:24:07