kostenloser Webspace werbefrei: lima-city


JS: element in setTimeout einfügen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    heavyraptor

    heavyraptor hat kostenlosen Webspace.

    Hi,

    ich habe eine Funktion, die zwei elemente entgegennimmt, das Argumment der Funktion ist irgend eine ID eines Elementes (unwichtig), und im zweiten Argumment das Elemement selber (schl?sselwort this). Wenn man jetzt mit der Maus auf ein bestimmtes Element trifft, dann wird diese Funtion ausgel?st:

    [...]
    <div onmouseover="doDomething('el1',this)"></div>
    [...]

    Das funktioniert ohne Probleme. Mein Problem:
    Ich will, dass die Funktion mit den Selben Daten Sp?ter ausgel?st wird (ich benutze setTimeout):

    <div onmouseover="timeout = setTimeout('doDomething(\'el1\',' + this + ')',1000)"></div>

    Aber das geht leider nicht (Schl?sselwort this geht nicht, das andere ist kein Problem). Ich habs auch schon mit setTimeout('doDomething(\'el1\',this)',1000) versucht, aber das funktioniert auch nicht.

    Was muss ich jetzt machen, damit die Funktion doSomething this entgegennimmt?

    mfg,
    hr
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage


  3. Hi,

    ich habe eine Funktion, die zwei elemente entgegennimmt, das Argumment der Funktion ist irgend eine ID eines Elementes (unwichtig), und im zweiten Argumment das Elemement selber (schl?sselwort this). Wenn man jetzt mit der Maus auf ein bestimmtes Element trifft, dann wird diese Funtion ausgel?st:

    [...]
    <div onmouseover="doDomething('el1',this)"></div>
    [...]

    Das funktioniert ohne Probleme. Mein Problem:
    Ich will, dass die Funktion mit den Selben Daten Sp?ter ausgel?st wird (ich benutze setTimeout):

    <div onmouseover="timeout = setTimeout('doDomething(\'el1\',' + this + ')',1000)"></div>

    Aber das geht leider nicht (Schl?sselwort this geht nicht, das andere ist kein Problem). Ich habs auch schon mit setTimeout('doDomething(\'el1\',this)',1000) versucht, aber das funktioniert auch nicht.

    Was muss ich jetzt machen, damit die Funktion doSomething this entgegennimmt?

    mfg,
    hr


    Ich vermute das geht leider garnicht (this ist kein String sondern ein Objekt und setTimeout erwartet eine String).
    Aber sag mal was du machen m?chtest.
    Mit this m?chtest du ja das Element ?bergeben, welches die Funktion aufgerufen hat um dann sp?ter auf Eigenschaften von den Element zuzugreifen.
    Du k?nntest eine weitere Methode schreiben und in doDomething mit setTimeout diese neue Methode aufrufen.

    Jens
  4. Autor dieses Themas

    heavyraptor

    heavyraptor hat kostenlosen Webspace.

    Hi, erstens danke f?r Deine Hilfe.

    Es ist so: mit doSomething wird das Element "el1" einige Pixel unter dem this Element Hingeschoben. Eigentlich w?rde es ja auch mit einem className gehen, aber viel einfacher ist mit this.


    [...]
    Du k?nntest eine weitere Methode schreiben und in doDomething mit setTimeout diese neue Methode aufrufen.


    Wie meinst du das?
    Etwa so?:

    function doSomething(el,origin) {
    var x = getPosX(origin); // Die beiden funktionen hier (getPosX und getPosY) gibt es nicht, ich hab sie selber geschrieben um die X und Y-Koordinaten zu bekommen, aber das ist ja unwichtig.
    var y = getPosY(origin);

    timer = window.setTimeout("move(" + el + ","+x+","+y+")",150);
    }

    mfg,
    hr

  5. Hi, erstens danke f?r Deine Hilfe.

    Es ist so: mit doSomething wird das Element "el1" einige Pixel unter dem this Element Hingeschoben. Eigentlich w?rde es ja auch mit einem className gehen, aber viel einfacher ist mit this.


    [...]
    Du k?nntest eine weitere Methode schreiben und in doDomething mit setTimeout diese neue Methode aufrufen.


    Wie meinst du das?
    Etwa so?:

    function doSomething(el,origin) {
    var x = getPosX(origin); // Die beiden funktionen hier (getPosX und getPosY) gibt es nicht, ich hab sie selber geschrieben um die X und Y-Koordinaten zu bekommen, aber das ist ja unwichtig.
    var y = getPosY(origin);

    timer = window.setTimeout("move(" + el + ","+x+","+y+")",150);
    }


    Ja, so meine ich das. ;)

    Jens
  6. Autor dieses Themas

    heavyraptor

    heavyraptor hat kostenlosen Webspace.

    Ok, gut, es funktioniert auch :biggrin:
    Vielen Dank.

    mfg,
    hr
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!