我有两个功能:
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)
吗?
答案 0 :(得分:5)
您可以使用$(this).data('original_left', my_value)
然后,使用$(this).data('original_left')
答案 1 :(得分: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;
}());
答案 2 :(得分:4)
致电$(this).data('some name', value)
。
您可以稍后通过调用$(this).data('some name')
来获取该值。