Javascript 我可以向$(此)添加变量吗?
我有两个职能:Javascript 我可以向$(此)添加变量吗?,javascript,jquery,html,Javascript,Jquery,Html,我有两个职能: function animateOpen(){ var originalPosition = $(this).css("left"); var distance = $(this).getHorzontalDistanceToCenter(); $(this).animate("left", "+="+distance); $('#button').click( function (){ $(this).animate("left"
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();
}
我想将此代码转换为底部表单(以删除对按钮的依赖):
问题是,
animateClose
如何获得原始位置
?我可以把它放在$(this)
?您可以使用$(this)保存原始位置。数据('original\u left',my\u value)
然后,使用
$(this.data('original\u left')获取保存的值。
您可以使用$(this.data('original\u left',my\u value')保存原始位置。
然后,使用
$(this.data('original_left')获取保存的值
将其包装在一个闭包中并共享原始位置
:
(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;
}());
将其包装在一个闭包中并共享原始位置:
(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;
}());
调用$(this.data('somename',value)
以后可以通过调用$(this).data('some name')
调用$(this).data('some name',value)
来获取值
您可以稍后通过调用$(this.data('some name')
来获取该值