Marcel G: AppendChild Problem (DOM)

Hallo Forenuser,

ich hab hier ein problem, mit den ich mich schon den ganzen tag herumschlage, ohne ein ergebnis zu bekommen.

Und zwar funktioniert dieses kleine script wunderbar im Firefox aber im IE nimmt er nie die onclick bzw. zeigt er mir nie das CSS. Laut DOM Inspector schreibt er aber alles wie gewollt in den richtigen DOM baum.

bin am verzweifeln. Das originalscript ist um einiges länger, aber dieser schnippsel soll euch zeigen, was für problem ich habe.

Wäre nett, wenn mir jemand bei meinem kleinen problemchen helfen könnte.

Grüße

Marcel
#############################

<head>
<script language="javascript" type="text/javascript">

function load_orders(){

var server_tab = document.createElement('div');

server_tab.setAttribute("onclick","alert('test');");
  server_tab.setAttribute("class","server_tab");

server_tab.appendChild(
    document.createTextNode("Server: ")
   );

document.getElementById('order_leftDiv').appendChild(server_tab);

}
</script>

</head><body onload="load_orders();">

<div style="height:300px;">
<div style="float:left;">
<h3>This is the first list</h3>

<div id="order_leftDiv">
   </div>

</div>

</div>
</body>
</html>

  1. Hallo.

    server_tab.setAttribute("onclick","alert('test');");
      server_tab.setAttribute("class","server_tab");

    setAttribute funktioniert nicht wie es soll (v.a. im IE).
    Schreib stattdessen einfach:
    server_tab.onclick = "alert('test')";
    oder
    server_tab.onclick = function(e){alert('test');};
    bzw.
    server_tab.className = "server_tab";

    Das ist a) viel einfacher und übersichtlicher und b) funktioiniert es auch.

    Viele Grüße

    Michi

    1. setAttribute funktioniert nicht wie es soll (v.a. im IE).

      stimmt, teilweise.

      Schreib stattdessen einfach:
      server_tab.onclick = "alert('test')";

      das ist falsch. Ein Eventhandler kann mit einem String nichts anfangen.

      server_tab.onclick = function(e){alert('test');};

      so ist's richtig.

      Struppi.

      --
      Javascript ist toll (Perl auch!)
      1. Hallo.

        server_tab.onclick = "alert('test')";

        das ist falsch. Ein Eventhandler kann mit einem String nichts anfangen.

        Entschuldigung, hast natürlich recht, das ist natürlich falsch.

        Greets

        Michi

    2. Hallo,

      server_tab.onclick = function(e){alert('test');};

      Wozu ist eigentlich das „e“ gut? Ich habe bisher immer nur function(){bla()} geschrieben.

      mfg. Daniel

      1. server_tab.onclick = function(e){alert('test');};

        Wozu ist eigentlich das „e“ gut? Ich habe bisher immer nur function(){bla()} geschrieben.

        Und wie ermittelst du in Mozilla Browsern den Event?

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. Hallo,

          server_tab.onclick = function(e){alert('test');};

          Wozu ist eigentlich das „e“ gut? Ich habe bisher immer nur function(){bla()} geschrieben.

          Und wie ermittelst du in Mozilla Browsern den Event?

          Gar nicht ;-)
          Nagut, ich hab's verstanden.

          mfg. Daniel