2010-11-22 92 views
0

我試圖讓使用jQuery(類似於一個在iPad)阻力和滾動腳本

所以,我想記錄鼠標按下的yPosition和鼠標鬆開和移動DIV滾動日曆腳本因此。我嘗試使用兩個變量記錄鼠標位置,一個記錄在mousedown事件中,一個記錄在mouseup事件中...

但現在問題是變量值沒有被執行,所以在mouseup上,mousedown的值回到0.我會怎麼做這個值?

非常感謝!

的代碼如下:

jQuery(document).ready(function(){ 
var yStart = 0; 
var yEnd = 0; 
$("#year").mousedown (function(e){ 
    var yStart = e.pageY; 
    $(".yStart").text (yStart +"ho"+ yEnd); 
    }).mouseup (function(e){ 
     var yEnd = e.pageY; 
     $(".yEnd").text (yStart +"ho"+ yEnd); 
    }); 
    if (yStart>yEnd) { 
    $("#year ul").animate({top:'-='+liHeight},"fast"); 
}; 

回答

0

範圍在Javascript中是由功能。您在mousedown函數中使用的yStart與您在mouseup函數中使用的yStart不同。 mouseup函數的yStart將始終爲零,因爲它是在腳本開始處定義的yStart,它位於事件綁定之外。你應該在你的mousedown函數中去掉yStart之前的「var」,這樣就不用通過這個名稱創建一個新的局部變量,而是將新的值寫入yStart,並且可以在另一個函數中使用它。出於同樣的原因,您還應該刪除mouseup函數中的「var」聲明。

+0

謝謝。對不起,我真的很陌生,但是你知道我在哪裏宣佈變量嗎?因爲擺脫那給了我一個錯誤,說yStart和yEnd var沒有聲明。 – Stephanie 2010-11-22 04:30:12

+0

nvm我現在明白了!非常感謝。 – Stephanie 2010-11-22 04:35:47