JS / CSS Problem mit IE
bert
- css
1 Gunnar Bittersmann
0 Bert0 Der Martin
0 bert
Guten Morgen,
ich hab ein kleines JS, welches beim onkeydown-event die class eines Divs ändern soll. Funktioniert unter FF auch wunderbar. Bei IE passiert allerdings gar nichts.
Habe das JS "aus-alertet" um zu sehen, ob er auch in jede if-Anweisung reingeht und ob die variablen richtig gesetzt sind. scheint wohl so zu sein.
Entweder IE ist also nicht mit folgender JS-Zeile einverstanden:
document.getElementById('mein_div_' + divnr).setAttribute("class","divs_neue_class");
(divnr ist richtig gesetzt und das Div mit der passenden ID existiert auch)
oder er kann den CSS-part nicht interpretieren:
.divs_neue_class {
background-color: #ff0;
color: #00f;
padding: 2px 2px 2px 0px;
text-transform: uppercase;
font-weight: bold;
}
Es passiert jedenfalls nichts beim onkeydown (obwohl wie gesagt alle IFs positiv durchlaufen werden und alle vars richtig sind) im IE (Version 8)
Danke schonmal für eure Ideen
@@bert:
nuqneH
Entweder IE ist also nicht mit folgender JS-Zeile einverstanden:
document.getElementById('mein_div_' + divnr).setAttribute("class","divs_neue_class");
Dass der IE so seine Probleme mit setAttribute()
hat, sollte sich doch inzwischen herumgesprochen haben.
Setze die Klasse als Eigenschaft des Objekts:
document.getElementById('mein_div_' + divnr).className = "divs_neue_class";
Qapla'
Setze die Klasse als Eigenschaft des Objekts:
document.getElementById('mein_div_' + divnr).className = "divs_neue_class";
Gut zu wissen. Habs geändert:
if (document.getElementById('SUG_suggest_element_' + (SUG_selected_suggest + 1))) {
if (SUG_selected_suggest!=-1)
document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).classname = "SUG_suggest_element";
SUG_selected_suggest++;
document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).classname = "SUG_selected_suggest";
So funktionierts weder in FF noch in IE.
Wenn denselben Code allerdings mit
document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).setAttribute("class", "SUG_selected_suggest");
schreibe gehts in FF
Das erste IF prüft, ob das folge-Element existiert. Das zweite schaut, ob bereits ein selected_div existiert um es zu unselecten.
SUG_selected_suggest ist eine globale Variable um zu speichern, welches div gerade selected ist.
Hallo,
Setze die Klasse als Eigenschaft des Objekts:
document.getElementById('mein_div_' + divnr).className = "divs_neue_class";
Gut zu wissen.
ja, hätte man aber mit einer Suche in alten Forumsbeiträgen schon vielfach finden können.
document.getElementById('SUG\_suggest\_element\_' + SUG\_selected\_suggest).classname = "SUG\_suggest\_element";
So funktionierts weder in FF noch in IE.
Natürlich nicht. Du setzt ja auch eine ganz andere, neue Eigenschaft.
So long,
Martin
lol, Fehler gefunden --> classname => className
Danke dir!