2010-02-25 45 views
5

是否有任何方式将样式重置回CSS中的内容?Prototype.js:reset setStyle

例子:

#foo {width: 50px; height: 50px; position: absolute; top: 150px; left: 250px;} 


function moveFoo(newpostop, newposleft){ 
    $('foo').setStyle({top: newpostop+'px', left: newposleft+'px'}); 
} 

现在,当我是受够了,我想移动富回来时,它是。我知道它可以是硬编码的,但我需要用25个不同的div来做到这一点。

感谢

回答

5

设置样式并不能消除在CSS类的所有的元素。它只覆盖那些被改变的。控件的实际样式是CSS样式和样式属性上的自定义样式的组合。要完全恢复到CSS样式,只需删除样式属性即可。

$('#foo').removeAttr('style'); 

编辑:

显然,上述方法无效。我在评论中获悉,但是,以下作用:

$('#foo').writeAttr('style', ''); 
+1

没有工作,但$( '富')writeAttribute ('样式','');作品!谢谢!! – 2010-02-25 03:12:40

+1

尽管问题中的示例似乎表明使用了** prototypejs **,但答案似乎使用了** jQuery **。而'''writeAttribute''完全从DOM-Node中移除'''style'''-Attribute,而其他答案只能从中删除某些设置。 – heiglandreas 2013-03-13 09:08:20

0

您可以删除一个属性,但我不认为你可以将其恢复。

如果您使用其他样式表更改布局,则可以将其恢复。这样,您应该能够启用样式表来显示更改,并禁用它以将其撤消。

最好的解决方案可能会是旧的属性都存储到一个数组,并使用数组来改变你的风格属性后面

事情是这样的:

var tempStyle = new Array(); 

    function moveFoo(newpostop, newposleft){ 
     tempStyle ["foo"] = new Array(); 
     tempStyle ["foo"]["top"] = newpostop; 
     tempStyle ["foo"]["left"] = newposleft; 

     $('foo').setStyle({top: newpostop+'px', left: newposleft+'px'}); 
    } 

    function restoreFoo(){ 
     $('foo').setStyle({top: tempStyle ["foo"]["top"]+'px', left: tempStyle ["foo"]["left"]+'px'}); 
    } 
6

设置样式与null -value在prototype.js中取消设置诀窍

因此,您还可以使用$('foo').setStyle({top:null,left:null})还原所做的更改。

1

可以使用普通的JavaScript命令是,对我来说工作正常。

$('foo').removeAttribute('style'); 

将拆除的整体风格= “” 元素

相关问题