存储.css()在Object中,jQuery

时间:2013-11-10 21:09:10

标签: javascript jquery object

我目前正在尝试将元素的原始CSS值保存在对象中,如下所示:

var xc = {
    "pos": {
        "ml": String($(this).css("margin-left")),
        "mt": String($(this).css("margin-top"))
    }
};

在存储了值之后,我改变了我刚刚存储的值的元素的CSS样式。

当我尝试从对象访问原始值时,我返回了元素的新CSS样式。

例如,235px存储在对象中,然后我将元素的235px更改为10px。该元素的235px现在变为10px。

2 个答案:

答案 0 :(得分:4)

您可以使用style

.data()值附​​加到jQuery选项中,轻松保存.css()
var $ele = $('#ele');
$ele.data( $ele.prop('style') );

如果您更改$ele的css,但想要访问原始值,则只需调用$ele.data()[property]即可。

例如,如果要将所有CSS值恢复为原始值,则只需将保存在数据中的对象传递给{{3}}:

$ele.css( $ele.data() );

答案 1 :(得分:0)

试试这个(只是没有字符串):

<!DOCTYPE html>
<html>
<head>
  <script data-require="jquery@1.9.1" data-semver="1.9.1" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
  <div style="margin-left: 10px; margin-top: 20px;"
    onclick="var xc = {'pos': {'ml': $(this).css('margin-left'), 'mt': $(this).css('margin-top') } }; alert(xc.pos.ml + ' ' + xc.pos.mt);">Test</div>
</body>
</html>

Plunker example