Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以向$(此)添加变量吗?_Javascript_Jquery_Html - Fatal编程技术网

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')
来获取该值