使用 jQuery 切换多个 css 属性然后将它们全部切换回来的首选方法是什么。
例如,如果我设置:
$element.css({ "background" : "white", "height": "50px", "width" : "30px" });
$anotherElement.css({ "overflow" : "hidden", "font-size": "12px", "padding" : "5px" });
$yetAnotherElement.css({ "top" : "10px", "font-weight": "bold" });
我使用了这个特定数量的元素,每个元素有 2-3 个不同的选择器,以说明逐个保存不方便,并且为每个创建“临时类”也不方便,特别是如果我有的话yetAnotherAnotherElement
等等。 . 让我们也说它们在不同的容器中。
能够获得css“对象”会很好:
var oldCSS= $element.css();
$element.css({ ...change css... });
//Change back
$element.css(oldCSS);
也应该很好地与数组一起工作:
//Set
elements.each(function (index, element) {
array[index] = $(element).css();
});
//Restore
elements.each(function (index, element) {
$(element).css(array[index]);
});
有这样的事情吗?
更新:原来我可以默认设置 $element.css(cssObject) ,它只是覆盖空白 css() 以基于标志返回对象或字符串。例如:
element.css("overflow", true)
会回来{ "overflow" : "hidden" }
element.css("position", "overflow", true)
会回来{ "position" : "absolute", "overflow":"hidden" }
然后它可以像我想要的那样轻松恢复:element.css(cssObject)