JavaScript-GetElementByID + timeout

Diskutiere mit über: JavaScript-GetElementByID + timeout im Web-Programmierung Forum

  1. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Hallo,

    ich versuche, mit GetElementByID() in der Navigationsleiste einer Webseite
    den Hover-Effekt ca. 2 Sekunden, nach dem der Cursor den Link verlassen hat, anhalten zu lassen. Mein Quelltext sieht bis jetzt so aus:

    Code:
    function hover(id)
    {
    document.getElementById(id).style.borderColor = "lime";
    }
    
    function enthover(id)
    {
    window.setTimeout('document.getElementById(id).style.borderColor = "black";', 1500);
    }
    und bei dem Link werden die functions dann folgendermaßen aufgerufen:
    Code:
    <a href="home.html" onmouseover="hover(1)" onmouseout="enthover(1)" id="1">home</a>
    
    Das Problem ist, dass der Hover-Effekt so lange anhält, bis man die Seite neu läd. Auch wenn ich bei Timeout nur 1 milisekunde eingebe.

    Hatte jemand von Euch ein ähnliches Problem oder kennt eine Webseite,
    bei der ich das Abkupfern könnte?

    Danke im Vorraus
    moses
     
    Zuletzt bearbeitet: 10.07.2005
  2. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Hallo,

    bin nicht kompetent in JS, aber ich glaube die Funktion wait + das was dann kommen soll - ist das richtige in dem Fall.
     
  3. dms

    dms Gast

    Code:
    win.setTimeout('document.getElementById("'+id+'").style.borderColor = "black";', 1500);
    So sollte es laufen, Du hast die ID nicht eingesetzt.
     
    Zuletzt von einem Moderator bearbeitet: 10.07.2005
  4. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    @dmx: Doch, die id wird über die Variable von der function übergeben
    (onmuseover="hover(id1)").

    @jakob: muss dass mal ausprobieren, danke

    [edit:]mit wait(1500); funzts auch nicht...dreck....oder meintest du das anders?[/edit]
     
    Zuletzt bearbeitet: 10.07.2005
  5. dms

    dms Gast

    Übergeben ja, aber eben nicht eingesetzt. Schau Dir nochmal meinen Post oben an.
    Ach und was mir noch auffällt: window und nicht win. Es sei denn, Du hast win vorher definiert.
     
    Zuletzt von einem Moderator bearbeitet: 10.07.2005
  6. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    das mit window.setTimeout stimmt, habe ich auch grad gemerkt.
    aber...

    Bin ich jetzt zu blöd oder schreiben wir komplett aneinander vorbei?
    Im Link heissts
    Code:
    <a href="#" onmouseover="hover(xxx)"  id="xxx"></a>
    und dann in der function

    Code:
    hover(id)
    {
    document.getElementById(id).style.borderColor = "lime";
    }
    ^
    das is der parameter

    müsste richtig sein
     
  7. dms

    dms Gast

    Ja, in der Funktion hover stimmts ja auch. Aber in enthover musst Du den Wert von id einbinden, und nicht id selbst.

    Als erläuterung schreibe mal folgendes in die Funktion enthover:
    Code:
    window.setTimeout('alert("'+id+'");', 1500);
    window.setTimeout('alert(id);', 1500);
    Der zweite Timeout, der Deinem Aufruf entspricht, wird einen Referenz-Fehler erzeugen, da id zu dem Zeitpunkt an dem der Timeout aufgerufen wird nicht belegt ist. Wäre id eine global belegte Variable würde es auch so funktionieren.

    edit:
    Also nochmal die komplette Funktion enthover, inklusive korrektem window-Objekt.
    Code:
    function enthover(id) {
       window.setTimeout('document.getElementById("'+id+'").style.borderColor = "black";', 1500);
    }
    Leerzeichen entfernen nicht vergessen. Kann das nicht mal jemand fixen?
    Wenn Du's nicht glaubst, probiers einfach aus. ;)
     
    Zuletzt von einem Moderator bearbeitet: 10.07.2005
  8. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    DankeDankeDankeDankeDankeDankeDankeDankeDankeDankeDankeDankeDanke!!

    klappt jetzt einwandfrei. Aber gerafft hab ichs immer noch nicht..is auch egal
     
Die Seite wird geladen...
Ähnliche Themen - JavaScript GetElementByID timeout Forum Datum
Javascript: key listener unter iOS Web-Programmierung 27.05.2016
JavaScript coding game - Tester gesucht Web-Programmierung 21.10.2013
Interaktivsein mit Javascript (Eingaben???) Web-Programmierung 04.04.2013
fieldset klonen mit JavaScript / jQuery Web-Programmierung 21.02.2013
Javascript Text verschwinden lassen (display:none) Web-Programmierung 31.12.2012

Diese Seite empfehlen

Benutzerdefinierte Suche