【问题标题】:How to revert css properties in jQuery如何在 jQuery 中恢复 css 属性
【发布时间】:2022-01-04 23:36:23
【问题描述】:

在我的 jQuery 函数中,我正在为一个 div 元素设置动画,因此它向右移动 200px,接收一个已移动的类和一些不透明度:

if (!$(".block2").hasClass("Moved2")) {
    $(".block2").animate({
        "left": "+220px"
    }, "slow", function() {
        $.ajax
        ({url: 'play.php',
            data: {"var1": val},
            type: 'get',
            success: function(json) {
                if(!json.error) {$(".block2").removeClass("Moved2").css({left:"0",opacity:"1"});}
        }});
    } ).fadeTo("slow", 0.33).addClass("Moved2");
}

这工作正常,但完成后,我希望所有属性和 css 恢复到动画之前的状态。但我不想重新加载页面。

如你所见,现在我是这样做的:

$(".block2").removeClass("Moved2").css({left:"0",opacity:"1"});

它做我想做的事,但可能有更多属性在其他函数中受到影响,我不想一个一个地更改每个元素。该 jQuery 序列所做的一切是否有一种 UNDO?

【问题讨论】:

  • 你可以缓存元素的计算样式,然后有选择地应用那些你的jQuery函数最后改变的样式。

标签: javascript html jquery css


【解决方案1】:

你可以使用removeAttr(),这样会删除所有添加到类.block2的内联样式

$(".block2").removeClass("Moved2").removeAttr("style")

【讨论】:

  • 我不确定这是否也会删除 CSS 文件中为该元素定义的样式。如果它只删除添加的内联样式,那么这就是我想要的
  • 它只删除内联样式,因为您正在删除属性 html style
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2010-10-01
  • 1970-01-01
  • 2021-09-20
  • 2014-04-24
  • 2017-08-18
相关资源
最近更新 更多