JavaScript: Per Funktion ein Objekt übergeben

  • hey leutz,
    hab da (wieder einmal^^) ein problem.
    versuche in javascript verglich ein objekt weiterzugeben per funktion

    Code
    document.onclick = ausgabe;
    function ausgabe(ev) {
    elem = document.getElementById("thediv");
    elem.style.top = ev.pageY + "px";
    elem.style.left = ev.pageX + "px";
    window.setTimeout("ausgabe(" + [ev] + ")", "100");
    }

    das problem ist, dass bei dieser stelle window.setTimeout("ausgabe(" + [ev] + ")", "100"); das übergeben des ev nicht klappt (mit und ohne []; forefox meldet immer den fehler missing ] after element list)
    leider hab ich sonst keinen plan wie ich das ev weitergeben kann bzw. ev beim erneuten aufruf der funktion wieder erstellen kann :(

  • hast du einen link, damit ich mir die seite downloaden und verändern könte?
    mir ist nebenbei noch der fehler aufgefallen dass das 100 nicht in anführungszeichen gehört

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • also hier ist mal der gesamte quelltext der datei:


    und das mit den "100" funktioniert mit "" genausogut wie ohne
    (Anmerkung, das hinzufügen der punkte (.) hat nur den sinn, dass ich sehe, ob die funktion wiederholt wird.

    zur erläuterung was das ganze soll, ich versuche ein script zu bauen, mit dem man fenster (das werden sie später mal, vorerst nur ein div zum testen ob das script läuft) verschieben kann.

  • so geht es
    du kannst in setTimeout() nur strings ausführen lassen.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Zitat von Dodo


    du kannst in setTimeout() nur strings ausführen lassen.

    nöö man kann auch ne funktion ohne strings aufrufen

    mit setTimeout(funktionsname, pause_in_millisekunden);

    aber bei dem vorhanden problem würde ich auch so vorgehen wie dodo geschriben hat... :)

    muss man halt von fall zu fall entscheiden wie es für einen am besten is

  • ja man kann es auch ohne aufrufen. aber bei setTimeout wird nur der teil unter "" zeitversetzt ausgeführt. das was danach kommt wird nicht verzögert.
    ich hab jetzt eine zwischenfunktion eingebaut und nun klappt es.