PeterK: DOM & Button & onClick - geht net!

Hi!

Ich hab Probleme mit dem JavaScript DOM.

Mit jedem Klick auf 'Add' wird ein Button 'Tu Was - dynamisch' hinzugefügt. Dieser sollte genau dem festen 'Tu Was' Butten entsprechen, aber Die Funktion 'tuwas();' wird bei den dynamischn nicht aufgerufen, beim festen jedoch schon. Warum? (getestet mit IE 6.0) Und: Mit welchen Browsern kann ich so Elemente einfügen, bei welchen gehts nicht?

Thx, Peter

Hier der Code:

<html>
 <head>
  <title>Hallo</title>
  <script type="text/javascript"><!--
    function Add() {
      var NewButton = document.createElement("input");
      NewButton.setAttribute("type", "button");
      NewButton.setAttribute("value", "Tu Was - dynamisch");
      NewButton.setAttribute("name", "a_simple_button");
      NewButton.setAttribute("onclick", "tuwas();");
      var bodyElem = document.getElementsByTagName("body")[0];
      bodyElem.appendChild(NewButton);
    }
    function tuwas() {
      alert("Hallo, hier bei der TuWas GmbH...");
    }
  --></script>
 </head>
 <body>
  <input type="button" value="Tu Was" onclick="tuwas();">
  <input type="button" value="Add" onclick="Add();">
 </body>
</html>

--
Es gibt immer eine lösung - auch wenn sie keiner findet!!
Dat bin isch:ss:) zu:) ls:[ fo:| de:< va:| ch:? sh:) n4:~ rl:( br:$ js:| ie:) fl:)
  1. Mit welchen Browsern kann ich so Elemente einfügen, bei welchen gehts nicht?

    Diese Browser untersützen DOM setAttribute:
    Mozilla 1.x, Microsoft Internet Explorer 6.x, Netscape 6.x, Opera 7.x, Konqueror 3.x

    So gehts (zumindest bei den oben genannten Browsern):

    <html>
     <head>
      <title>Hallo</title>
      <script type="text/javascript"><!--
        function tuwas() {
          alert("Hallo, hier bei der TuWas GmbH...");
        }

    function Add() {
          var NewButton = document.createElement("input");
          NewButton.setAttribute("type", "button");
          NewButton.setAttribute("value", "Tu Was - dynamisch");
          NewButton.setAttribute("name", "a_simple_button");
    //so geht es
          NewButton.onclick = function () {
           tuwas();
          };
          var bodyElem = document.getElementsByTagName("body")[0];
          bodyElem.appendChild(NewButton);
        }
      --></script>
     </head>
     <body>
      <input type="button" value="Tu Was" onclick="tuwas();">
      <input type="button" value="Add" onclick="Add();">
     </body>
    </html>

    1. Cool! Danke!