createElement + setAttribute
MichaelR
- javascript
0 Thomas Meinike0 Rouven
Hallo,
in einem Skript erzeugt ich ein neues Element mittels:
var Elm = document.createElement('span');
dann werden diesem zwei Attribute zugewiesen:
Elm.setAttribute("class", 'GapSpan');
Elm.setAttribute("onclick", 'DoSthg()');
In Mozilla funktioniert alles bestens nur im IE nicht.
Laut SelfHTML hat der IE 5.5 eine Schwäche mit dem ersten Parameter bei setAttribute; nun gut, hab mehrere Ansätze ausprobiert haben aber alle immer zum Ergebnis geführt, dass weder die CSS-Klasse noch das Event im IE ausgeführt bzw. angewendet wurden.
Dann dachte ich, ich verzichte halt auf den IE 5.5 und baue nur auf IE 6 - aber der macht das gleiche???
Problem ist also, dass das Setzen von Attributen im IE nicht klappt!
Warum? Und wer weiß Abhilfe?
Danke + Grüße
Michael
PS: den erzeugten Span-Knoten hänge ich mittels appendChild im body an ein Div-Element an.
Hallo,
var Elm = document.createElement('span');
dann werden diesem zwei Attribute zugewiesen:
Elm.setAttribute("class", 'GapSpan');
Elm.setAttribute("onclick", 'DoSthg()');In Mozilla funktioniert alles bestens nur im IE nicht.
Probiere es so:
Elm.className='GapSpan';
Elm.setAttribute("onclick", 'DoSthg()', true);
oder
Elm.onclick=DoSthg; // ohne ()!
oder
Elm.onclick=function(){DoSthg()};
MfG, Thomas
Hallo Thomas,
[...]
Probiere es so:
Elm.className='GapSpan';
Elm.setAttribute("onclick", 'DoSthg()', true);
oder
Elm.onclick=DoSthg; // ohne ()!
oder
Elm.onclick=function(){DoSthg()};
Danke - an das className hätte ich auch denken können ... Das event-Setzen probiere ich und hoffe mal.
Danke + Grüße
Michael
Hallo,
Elm.className='GapSpan';
Elm.setAttribute("onclick", 'DoSthg()', true);
Das hatte keine Auswirkung
oder
Elm.onclick=DoSthg; // ohne ()!
Das geht nicht weil ich Parameter beim Event-Aufruf übergeben muss
Elm.onclick=function(){DoSthg()};
Aber das funktioniert gut in IE, und wenn es jetzt auch noch im Moz geht, spar ich mir die Browserweiche :-)
Danke,
Michael
MfG, Thomas
Hi,
der IE unterstützt eine andere Funktion, du müsstest halt nur rausfinden welche gerade angemessen ist:
attachEvent
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/attachevent.asp
MfG
Rouven