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 個の異なるセレクターを使用して、それぞれを 1 つずつ保存するのは不便であり、特に私が持って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)