2011-09-25 22 views
1

我有兩個功能:

function animateOpen(){ 
    var originalPosition = $(this).css("left"); 
    var distance = $(this).getHorzontalDistanceToCenter(); 
    $(this).animate("left", "+="+distance); 
    $('#button').click(function(){ 
     $(this).animate("left", originalPosition+"px"); 
    }); 
} 
function animateClose(){ 
    $('#button').click(); 
} 

我想這個代碼轉換爲底部形態(刪除按鈕的依賴):

function animateClose(){ 
    $(this).animate("left", originalPosition+"px"); 
} 
function animateOpen(){ 
    var originalPosition = $(this).css("left"); 
    var distance = $(this).getHorzontalDistanceToCenter(); 
    $(this).animate("left", "+="+distance); 
} 

的問題是,如何做animateClose得到originalPosition ?我可以以某種方式將它放入$(this)

回答

5

您可以保存使用$(this).data('original_left', my_value)

而且事後原來的位置,獲得與$(this).data('original_left')

4

保存的值包裝在一個封閉和分享originalPosition

(function(){ 
    var originalPosition; 
    function animateClose(){ 
     $(this).animate("left", originalPosition+"px"); 
    } 
    function animateOpen(){ 
     originalPosition = $(this).css("left"); 
     var distance = $(this).getHorzontalDistanceToCenter(); 
     $(this).animate("left", "+="+distance); 
    } 
    window.animateClose = animateClose; 
    window.animateOpen = animateOpen; 
}()); 
4

呼叫$(this).data('some name', value)

稍後您可以致電$(this).data('some name')獲取該值。

相關問題