nadin: this in Funktion bei setTimeout

Hallo,

ich hab da ein Problem. Hab dazu in der Hilfe nix gefunden. Ich will eine Klick- und eine Doppelklickfunktion zu gleich in eine Zeile einbauen. Siehe wie folgt:

<tr id="p<%=rs("per_nr")%>" onmouseover="blau(this)" onmouseout="weiss(this)"  ondblclick="merker++;loesch(this,0);return false;" onclick="merker++;tout = setTimeout('loesch(this,2)',500);return false;">

Das Problem hierbei ist, dass 'this' in der Funktion loesch(), welche ich im setTimeout aufrufe, undefined ist. wie mach ich es, dass sich this auf die Zeile bezieht, wie bei ondblclick?

Danke für eine Antwort.

MfG nadin

  1. Hi,

    Das Problem hierbei ist, dass 'this' in der Funktion loesch(), welche ich im setTimeout aufrufe, undefined ist. wie mach ich es, dass sich this auf die Zeile bezieht, wie bei ondblclick?

    indem Du setTimeout anstelle eines Strings eine (per new function() erzeugte) Funktion übergibst.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    ich hab da ein Problem. Hab dazu in der Hilfe nix gefunden. Ich will eine Klick- und eine Doppelklickfunktion zu gleich in eine Zeile einbauen. Siehe wie folgt:

    <tr id="p<%=rs("per_nr")%>" onmouseover="blau(this)" onmouseout="weiss(this)"  ondblclick="merker++;loesch(this,0);return false;" onclick="merker++;tout = setTimeout('loesch(this,2)',500);return false;">

    Das Problem hierbei ist, dass 'this' in der Funktion loesch(), welche ich im setTimeout aufrufe, undefined ist. wie mach ich es, dass sich this auf die Zeile bezieht, wie bei ondblclick?

    Danke für eine Antwort.

    MfG nadin

    Hi

    versuch mal ob das return false wegbleiben kann

    ondblclick="merker++;loesch(this,0)"
            onclick="merker++;tout = setTimeout('loesch(this,2)',500)">

    baue lieber dein return in function loesch() mit ein
    und nehme das merker++ auch in in die function loesch()

    ondblclick="loesch(this,0)"
            onclick="tout = setTimeout('loesch(this,2)',500)"

    jetzt noch die tout raus in eine extra Funktion

    function nadin77(){
         tout = setTimeout('loesch(this,2)',500)";
       }

    ondblclick="loesch(this,0)"
            onclick="nadin77()"

    --- das ist scheinbar für HTML ein verständlicher Code

    PS.: mit diesem this habe ich keinerler Erfahrung

    probieren !!

    Ulf

  3. Hi,

    Das Problem hierbei ist, dass 'this' in der Funktion loesch(), welche ich im setTimeout aufrufe, undefined ist. wie mach ich es, dass sich this auf die Zeile bezieht, wie bei ondblclick?

    this bezieht sich auf das uebergeordnete Element - hier dann also auf window, denn setTimeout ist eine window-Methode. Setze also die Referenz auf tr als String ein.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.