我可以在$(this)中添加变量吗?

cha*_*m15 1 html javascript jquery

我有两个功能:

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();
}
Run Code Online (Sandbox Code Playgroud)

我想将此代码转换为底部形式(以删除对按钮的依赖):

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

问题是,如何animateClose获得originalPosition?我可以以某种方式把它放进去$(this)吗?

Vit*_*r M 5

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

然后,获取保存的值 $(this).data('original_left')