1

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

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

存储值后,我更改刚刚存储其值的元素的 CSS 样式。

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

比如对象中存储235px,那么我把元素的235px改成10px。元素的 235px 现在变为 10px。

4

2 回答 2

4

style您可以通过使用将它们附加到 jQuery 选择来轻松地保留这些值.data()

var $ele = $('#ele');
$ele.data( $ele.prop('style') );

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

例如,如果您想将所有 CSS 值恢复为其原始值,那么您只需将保存在 data 中的对象传递给.css()

$ele.css( $ele.data() );
于 2013-11-10T21:20:34.050 回答
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 示例

于 2013-11-10T21:22:48.350 回答