我認爲這是一個JavaScript事件的工作。基本上你有一個全局變量,它將在鼠標移動時更新。更新變量後,您必須讓其他組件知道變量已準備好進行處理。
的代碼:
var myVar; // the global variable
// the function that will be caled when myVar has been changed
var myVarChangedHandler = function() {
console.log('myVar variable has been changed: ' + myVar);
}
// bind the event to the above event handler
$('body').bind('MyVarChangedEvent', myVarChangedHandler);
// instal mouse move event handler on document
$(document).mousemove(function(e){
myVar = winHeight() + scrollY() - e.pageY;
$('body').trigger('MyVarChangedEvent');
});
UPDATE
刪除了關鍵字var
形成movemove事件處理程序。
取決於myVar的代碼應放在myVarChangedHandler
函數中。
我會盡力解釋你的代碼, 中的缺陷以及你應該如何用類比解決問題。 讓我們下面的代碼(修正全局變量)
var myvar;
$(document).mousemove(function(e){
myvar = winHeight() + scrollY() - e.pageY;
});
console.log(myvar);
比方說,你,程序員,都在一些不知名的公司網絡開發部 一個團隊的領導者,你有任務列表中做工作了一天( 我們比喻的任務是更新myvar
每次鼠標移動) 您在您的處置庫(var myvar
)和2個開發商:
- 開發商約翰(
function(e) { myVar = ... };
)
- 開發商肯(
console.log(myvar)
)
09:00你來辦公室在早上(用戶打開頁面)
09:05您接通服務器電源/存儲庫
var myvar;
09:10你告訴約翰: 約翰,請做這個任務,每次你完成每個任務 上傳到版本庫,並在你的小時完成後回家
$(document).mousemove(function(e){
myvar = winHeight() + scrollY() - e.pageY;
});
09:11你告訴肯: 肯,請現在測試資源庫中的代碼後,你回家 已完成測試
console.log(myvar);
(此時,肯看到的是,倉庫是空的,回家 - 這是因爲 約翰沒有來得及在一分鐘內解決甚至任務,使肯無關的測試)
09:12你回家
09:12在辦公室只有約翰在做這些工作,你和肯已經離開了家裏 因爲你沒有別的事情要做。 這也發生在您的代碼中。你輸出的myvar
價值,但你還沒有移動鼠標 等等,當然,這個值是undefined
爲了解決這個問題,我們添加了一些修改:
09:00你來辦公室早上
09:05您接通服務器電源(資料庫)
09:10你告訴約翰:
John, please do this tasks and everytime you complete each task
uploaded it to the repository and tell Ken to test the code.
Go home after you have finished
09:11你告訴肯:
Ken, each time John tells you that he has completed a task,
fetch the code from the repository and test it.
Go home after he has finished
09:12你回家
在09:12兩個約翰和肯是在辦公室做他們的工作。
在上述情況下,Ken是myVarChangedHandler = function() {...};
當約翰告訴肯,他完成了一個真實的事件發生時的任務(故事), 當肯acknowleges他開始測試約翰信號(Ken是事件處理程序)
這是javascript中事件驅動架構的工作原理。 我會建議你溝jquery,mootools等......並開始學習核心概念 和基礎知識。重新啓動車輪幾次然後回到jquery。 我希望我解釋得足夠讓你理解。
這並沒有工作,要麼..給我的錯誤消息「myVar的變量已經改變:未定義」(儘管我糾正你的拼寫錯誤第13行) –
myVar的@MoRamzan我複製粘貼代碼,忘了刪除var關鍵字在鼠標移動事件處理程序。我更新了答案。再次嘗試 –
這似乎是工作,還是一點沒有讓我進入** ** myVar的變量外要做到這一點,下面的「這是一個外部的變化:」文本。應該更新... http://jsfiddle.net/MoRamzan/Q9NBQ/4/ –