Alain Aubert
Legendäres Mitglied
Wenn ich z.B.
CODE <div id='aa' class='class1'>...</div>
<script>
document.getElementById('aa').className = 'asfd';
</script>
den Klassenname ändere dann funktioniert das und es wird auch gerendert. Ähnlich einfach kann ich das per Link auslösen.
Wenn es aber in komplexere Umgebungen eingebunden ist, dass funktioniert zwar das Überschreiben der Klassen Namen, aber die Elemente werden nicht gerendert, d.h. in ClassName steht zwar class2, aber es hat noch immer die Eigenschaften und das Aussehen von class1.
Ich vermute, dass Mozilla das halt schon gerendert hat, und nicht - wie im einfachen dreizeitigen Testfile - mal eben die Klassen neu rendert.
Aha, nein, es liegt daran, dass es neben dem class Attribut kein Style Attribut geben darf. Irgendeine Javascript Funktion verändert bei mir den Style und ab dann geht es nicht mehr.
Man kann elem.style.removeAttribute() bzw mit elem.style.attribute = "" den Style einzelner Elemente auf Null setzen, bevor man ClassName ändert. So kann man das Problem lösen, wenn man weiss, welche Style möglicherweise gesetzt sind.
Aha, bin wieder zufrieden.
Zwar hab ich mein Problem soweit - ganz überraschend - gelöst, aber gibt es eine Möglichkeit den style (welcher nur getter hat) global einfach mal auf null zu setzen. So document.getElementById('aa'.style = Null oder so wäre nett...?
CODE <div id='aa' class='class1'>...</div>
<script>
document.getElementById('aa').className = 'asfd';
</script>
den Klassenname ändere dann funktioniert das und es wird auch gerendert. Ähnlich einfach kann ich das per Link auslösen.
Wenn es aber in komplexere Umgebungen eingebunden ist, dass funktioniert zwar das Überschreiben der Klassen Namen, aber die Elemente werden nicht gerendert, d.h. in ClassName steht zwar class2, aber es hat noch immer die Eigenschaften und das Aussehen von class1.
Ich vermute, dass Mozilla das halt schon gerendert hat, und nicht - wie im einfachen dreizeitigen Testfile - mal eben die Klassen neu rendert.
Aha, nein, es liegt daran, dass es neben dem class Attribut kein Style Attribut geben darf. Irgendeine Javascript Funktion verändert bei mir den Style und ab dann geht es nicht mehr.
Man kann elem.style.removeAttribute() bzw mit elem.style.attribute = "" den Style einzelner Elemente auf Null setzen, bevor man ClassName ändert. So kann man das Problem lösen, wenn man weiss, welche Style möglicherweise gesetzt sind.
Aha, bin wieder zufrieden.
Zwar hab ich mein Problem soweit - ganz überraschend - gelöst, aber gibt es eine Möglichkeit den style (welcher nur getter hat) global einfach mal auf null zu setzen. So document.getElementById('aa'.style = Null oder so wäre nett...?