MichaelR: createElement + setAttribute

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.

  1. 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

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. 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

    2. 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

  2. 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

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(