Ergebnis 1 bis 3 von 3
  1. #1
    Sonnenschein76 ist offline Grünschnabel
    registriert
    15-09-2007
    Beiträge
    5

    Nach onklick verschwindet Ausgabe wieder

    Hallo liebe Javascript-Gemeinde,

    ich bin noch nicht so besonders fit, was die Event-Handler angeht, und vielleicht ist meine Frage trivial, aber mit Googeln bin ich leider bislang nicht weitergekommen. Vielleicht habe ich einfach einen gravierenden Denkfehler bei mir drin, keine Ahnung.
    Und zwar möchte ich durch ein onclick-Event eine Funktion aufrufen, die den DOM-Baum modifizert. Wenn ich in der Funktion einen Fehler habe oder am Ende eine Alert-Box ausgeben lasse (und damit die Funktion unterbrochen wird), dann werden die neuen Inhalte vollkommen korrekt eingefügt - aber nur bis zu dem Zeitpunkt, an dem die Funktion komplett abgearbeitet ist. Das Problem betrifft FF (2.0.0.6) und IE (6.0) gleichermaßen, im FF blitzen die neuen Inhalte auch schon mal kurz auf.
    Wenn ich daraus ein onmouseover-Event mache (nur testweise), dann bleibt alles auch nach dem Verlassen des Elements so stehen, wie das in meiner Absicht liegt.
    Woran liegt das? Liegt das in der Natur von onclick?
    Ich habe dann auch noch ein Beispiel aus einem Buch. Da funktioniert es auch mit onclick.

    Grundsätzlich hatte ich auch schon daran gedacht, mit der visibility und CSS zu arbeiten. Passt aber leider nicht, weil ich Teile des einzufügenden HTML-Codes dynamisch erzeugen muss.
    Kurz zum grundsätzlichen Vorhaben:
    Es sollen Objekte in ein Array eingefügt, vertauscht, gelöscht werden (die Funktionen an sich stehen und funktionieren, mit document.write getestet).
    Nun sollen aber z.B. zu löschende oder zu vertauschende Objekte je nach aktuellem Stand per Select ausgewählt werden können. D.h. immer nach Klick auf ein bestimmtes Element sollen die passenden Formularelemente dynamisch in die Seite geschrieben werden.
    (Am Schluss möchte ich aus den Inhalten der Objekte meines Arrays dann kopierbaren XML-Code erzeugen, aber das auch nur am Rande, das ist dann auch nicht das Kernproblem.
    Die ganze Geschichte soll rein clientseitig ablaufen, daher halt Javascript. Aufgrund der kaum vorhandenen Speichermöglichkeiten von Javascript möchte ich eben alles ohne den Aufruf einer neuen Seite bewerkstelligen (komplexe Objekte in Cookies packen ist wohl nicht so der Hit), aber eben diese Seite nach bestimmten Verarbeitungsschritten immer wieder neu anpassen.

    Code:
    <?xml version="1.0" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript" src="functions.js">
    </script>
    <script type="text/javascript" src="init.js">
    </script>
    </head>
    <body>
    <form id="start">
    <label>Neuen Lerngraphen anlegen</label>
    <div>
    <p>Dateiname für den Lerngraphen: <input type="text" name="listenname" /><br />
    Snip-Name des Start-Snips: <input type="text" name="startsnip" /><br />
    <input type="submit" value="Los geht's!" onclick="init(listenname.value,startsnip.value)" />
    </div>
    </form>
    
    <form id="add">
    <label>Neuen Knoten am Ende einfügen</label>
    <div>
    <input type="text" name="snipname"/>
    <select name="element">
    <option>--- Knotenart auswählen</option>
    <option value="InfoNode">Informationsknoten</option>
    <option value="InteractionNode">Interaktionsknoten</option>
    </select>
    <input type="submit" onClick="graph.add(snipname.value,element.value)" />
    </div>
    </form>
    
    <form id="insert">
    <label>Neuen Knoten einfügen</label>
    <div>
    <input type="text" name="snipname"/>
    <select name="element">
    <option>--- Knotenart auswählen</option>
    <option value="InfoNode">Informationsknoten</option>
    <option value="InteractionNode">Interaktionsknoten</option>
    </select>
    <input type="submit" onClick="graph.insert(snipname.value,mother.value,element.value)" />
    </div>
    </form>
    
    <form id="exchange">
    <label>Vorhandenen Knoten an eine andere Stelle setzen</label>
    <div>
    <input type="submit" onClick="graph.exchange(snip1.value,snip2.value)" />
    </div>
    </form>
    
    <form id="remove">
    <label>Knoten löschen</label>
    <div id="div2">
    <input type="submit" onClick="graph.remove(snipname.value)" />
    </div>
    </form>
    
    </body>
    </html>
    und in der Funktion init() passiert unter anderem Folgendes:
    Code:
    var output="";
    output += graph.showAllNodes();
    var mydiv2 = document.getElementById("remove");
    mydiv2.innerHTML=output;
    dito auch, wenn ich es so löse:
    Code:
    var mutterknoten = document.getElementById("remove");
    var kindknoten = document.createElement("div");
    var text = document.createTextNode("blub");
    kindknoten.appendChild(text);
    mutterknoten.appendChild(kindknoten);
    bei onmouseover spielt alles so mit, wie es soll, bei onclick nicht.

  2. #2
    undefined ist offline Kaiser
    registriert
    08-08-2007
    Beiträge
    1.434

    AW: Nach onklick verschwindet Ausgabe wieder

    Nimm für die Klickerei was anderes als einen submit-button.
    Zitat Zitat von Toxictype Beitrag anzeigen
    Da ich von den meisten Usern dieses Forums sehr viel halte und immer die "richtigen" Antworten bekomme, wende ich mich lieber auch mit trivialen Fragen direkt an sie. Was helfen mir Foren, in denen zig verschiendene Lösungsansätze aufgezeigt werden und immer noch nicht weiß, welches nun der beste Weg ist...
    Keine Ahnung zu haben macht nix.

  3. #3
    Sonnenschein76 ist offline Grünschnabel
    registriert
    15-09-2007
    Beiträge
    5

    AW: Nach onklick verschwindet Ausgabe wieder

    Danke, das ist schon mal ein Hinweis, der evtl. was bringen könnte.
    In dem Beispiel in einem Buch funzte es mit document.onclick, aber das ganze Dokument kommt natürlich nicht in Frage.
    Irgendein Tag? p, a oder sowas?
    Ich hatte es übrigens auch schon mal mit dem onsubmit-Event im form-Tag versucht, da ging es genauso schief.

Ähnliche Themen

  1. "Pizza Online Bestelldienst"
    Von wilfried.pz im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 14-07-2007, 02:10
  2. Probleme mit der Ausgabe von langen Texten in MS-SQL / ODBC
    Von Steini1980 im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 12-01-2006, 14:22
  3. IE: bilder verschwinden onklick
    Von lord_buerzel im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 17-12-2005, 03:55
  4. Ausgabe anpassen
    Von TurboLarsen im Forum Linux und Co
    Antworten: 3
    Letzter Beitrag: 08-05-2004, 14:02
  5. nicht interpretierte Ausgabe
    Von chess-alf im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 10-05-2001, 11:36

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •