ReneRose: dynamisches Erzeugen von Elementen + Eventhandler

Guten Abend! :)

Folgende Funktion erzeugt ein Div Element samt Textbox:

function Writetextbox()
{
var Bodybox = document.createElement("div");

Bodybox.style.setAttribute("position","absolute");
Bodybox.style.left = 0 + "px";
Bodybox.style.top = 350 + "px";
Bodybox.style.width = 150 + "px";
Bodybox.style.height = 20 + "px";
Bodybox.style.setAttribute("background-color:",999999);

var myform = document.createElement("form");
myform.setAttribute("name","form3");
mytext = document.createElement("input");
mytext.setAttribute("type","text");
mytext.setAttribute("name","textfield");
mytext.setAttribute("size",6);
myform.appendChild(mytext);
Bodybox.appendChild(myform);

document.body.appendChild(Bodybox);

}

Mein erstes Problem, das Setzen der Hintergrundfarbe für das Div Element führt zu keinem Ergebniss, wo liegt der Fehler??

2.Problem, es sollen 2 weitere kleine Divs an das erste angehängt werden, die Eventhandler erhalten sollen Wie kann ich den Divs die Eventhandler anhängen??

Gruß Rene

Author on www.de.tradesignal.com

  1. Hallo Rene,

    Bodybox.style.setAttribute("background-color:",999999);

    versuch mal Bodybox.style.backgroundColor="#999999".

    Bei vielen Attributen, z.B name oder onclick, habe ich die Erfahrung gemacht, dass sie nicht in allen Browsern gesetzt werden können. Das onclick hat nur im Opera funktioniert.

    Gruß, Jürgen

    1. Vielen Dank für Eure Hilfe!!

      Zu den Eventhandlern hab ich heute Nacht in der Tat schon einiges brauchbares gefunden.

      Das mit der Backgroundcolor ist leider extrem wichtig, das es meine Schaltflächen ja vom Hintergrund abheben soll!

      Na mal sehen!

      Gruß Rene

    2. Hey Jürgen, Deine Variante funktioniert!! Danke, hab wohl in der NAcht einiges durchgetestet, aber die Variante nicht!!

      Gruß Rene

      bei Interesse: www.de.tradesignal.com/forum

      Das Forum für technische Analyse der Finanzmärkte!

  2. Hallo Rene,

    Eventhandler kannst du mit der Methode addEventListener() hinzufügen. Eine Doku findest du, glaube ich, auch hier bei SelfHTML. Ansonsten schau mal bei http://devedge.netscape.com.

    Gruß

    Carsten

  3. Ja gut, also Hintergrundfarbe setzen funktioniert. aber Evfenthandler bekomme ich trotzdem nicht erzeugt. Ich habe zwar einige Texte gefunden die:

    obj.attachEvent("onclick",function()); beschreiben
    aber ich erhalte nur Fehelrmeldungen.

    folgende Funktion erzeugt eine kleine Schaltfläche:

    function makeButton(Box, String1, String2,leftpos)
    {Box.style.setAttribute("position","absolute");
    Box.setAttribute("id",String1 + namecount);
    Box.style.left = leftpos + "px";
    Box.style.top = 4 + "px";
    Box.style.width = 30 + "px";
    Box.style.hight = 15 + "px";
    Box.style.backgroundColor="#999999";
    Box.style.textAlign = "center";
    var Boxtext = document.createTextNode(String2);
    var fontbox = document.createElement("font");
    fontbox.setAttribute("size",2);
    var strongbox = document.createElement("strong");
    strongbox.appendChild(Boxtext);
    fontbox.appendChild(strongbox);
    Box.appendChild(fontbox);}

    Ich will jeder Schaltfläche die so erzeugt wird noch diverse Eventhandler verpassen, die auf Funktionen zugreifen.
    Wer kann mir helfen??

    Rene schreibt auf www.de.tradesignal.com/forum    bei Interesse stehe ich dort gerne zur Verfügung!

    Gruß Rene

    1. Hallo,

      Ich will jeder Schaltfläche die so erzeugt wird noch diverse Eventhandler verpassen, die auf Funktionen zugreifen.

      deinobjekt=document.createElement("...");
      deinobjekt.onclick=function(){DeineFunktion()};

      MfG, Thomas

      --
      SVG - Learning By Coding
      http://svglbc.datenverdrahten.de/
      1. Hallo,

        Ich will jeder Schaltfläche die so erzeugt wird noch diverse Eventhandler verpassen, die auf Funktionen zugreifen.

        deinobjekt=document.createElement("...");
        deinobjekt.onclick=function(){DeineFunktion()};

        MfG, Thomas

        Hallo Thomas!!

        Ich könnte Dich umarmen. War also nur eine Syntaxfrage!! Vielen Dank ein erster Tst hat geklappt.

        wenn Du Dich für Börse interessierst dann schaumal hier:

        www.de.tradesignal.com/forum

        viele Grüße Rene

        1. Ich bin ein Stück weiter, aber nicht durch!!

          Bitte enen Blick aufs Bild werfen! Ihs seht eine Art Galerie, in der man blättern kann. Die Schaltfläche zwischen den Pfeiltasten erzeugt ein Objekt, wie Ihr es unten seht nach folgendem Muster:

          DIV1 erzeugen
           Textbox erzeugen, anhängen
          DIV2 erzeugen ---> an DIV1 anhängen
          DIV3 erzeugen ---> an DIV1 anhängen
          DIV4 erzeugen ---> an DIV1 anhängen

          Div2,3 und 4 enthalten Eventhandler, die das Verhalten der Schaltfläche bei Mouseover usw steuern.

          Jeder Klick auf die Schaltfläche Add to List erzeugt ein weiteres solches Objekt darunter. Auf diese Art und Weise entsteht eine ganze Liste. In den textboxe steht jeweils das Kürzel, was in der Kursliste aktuelle ausgewählt ist.

          Die Schaltfläche Repl. die ganz rechts neben jeder Textbox steht hat die Aufgabe, den AktienChart Rechts gegen den, der durch das Kürzel in der entsprechenden Textbox represäntiert wird zu tauschen.
          Ich muß also einen weiteren Eventhandler onclick der Schaltfläche Repl. anhängen. Problem hierbei, wie komme ich an den String, der in der Textbox steht?

          Mein erster und erfolgloser versuch war, den onclickhandler mit Funktionsaufruf an die Schaltfläche zu hängen, und dabei eine Referenzvariable für die Kursliste zu übergeben. Leider bleibt die Referezvariable nicht statisch  enthalten. Sondern, wenn ich ein Weiteres Objekt mit Add to List hinzufüge, ruft die Repl. Schaltfläche der ersten textbox nicht mher den Wert auf, den Sie ursprüglich hatte, sondern den der 2. textbox. Die in den Eventhandlern derfinierten Referenzen auf die Kusiste sind also irgendwie nachträglich überschrieben worden.
          Bei der Erzeugung der einzelnen Div Form und Input Tags achte ich darauf, ds jedes Element einn individuelen namen bekommt. Das habe ich auch Schrittweise kontrolliert.

          a ich den Vorgang nicht ganz durchschaue, wollte ich nun einen anderen Weg gehen. Jede textbox enthält das Kürzel, das ich bei Aufruf der Tauschfunktion auch brauche. Nur leider weiß ich keinen Weg, wie ich die dynamisch erzeugte Textbox, über den danach ebenfalls dynamisch erzeugten Eventhandler auslese!

          Wenn Ihr einigermaßen verstanden habt, was mich drückt, dann helft mir Bite!

          Ich stehe mit meinem Know How zur Börse gerne zur Verfügung:

          www.de.radesignal.com/forum!!
          Gruß Rene

          1. Hat keiner eine Meinung dazu??? :(

            Rene

            1. Hat keiner eine Meinung dazu??? :(

              Rene

              Hat sich schon erledigt, ich hab den Weg gefunden!!

              Letzten Proble, bleibt das Speichern, der in den dynamisch erzeugten Textboxen enthaltenen Strings, aber das sollte ich auch schaffen!

              Danke, für die bisher gegebne Unterstützung!

              Rene