tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
981
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pride pride ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    14
    Hallo,

    Ich habe folgende Javascriptfunktionen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    <script type="text/javascript">
    var battery = null;
     
    function engine(id)
    {
    battery = document.getElementById(id);
    battery.style.display = (battery.style.display == "block")? "block" : "block";
    setTimeout('refresher(id)', <?php echo $_SESSION["tappingspeed"]; ?>);
    }
     
    function refresher(id)
    {
    battery = document.getElementById(id);
    battery.style.display = (battery.style.display == "none")? "none" : "none";
    if(point == "kc_r1")
    {
    alert("test");
    }
    }
    </script>

    Wie Ihr seht, rufe ich innerhalb der engine Funktion eine andere Funktion namens refresher auf. Beim aufruf der engine Funktion wird die ID des zu behandelnden Elements mitgegeben, meine Frage ist jetzt wie ich diese ID an die refresherfunktion weitergeben kann. So wie es hier steht funktioniert es leider nicht.

    ... oder habe ich mal wieder einen völlig falschen Ansatz erwischt ?

    THX, Pride
    Geändert von pride (26.08.05 um 22:42 Uhr)
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Das Problem ist, das die Funktion verzögert aufgerufen wird... zu diesem Zeitpunkt wurde die ursprüngliche Funktion verlassen, und id ist nicht mehr bekannt.

    Das, was als Anweisung in setTimeout() geschrieben wird, muss jederzeit per eval() ausführbar sein.

    Bei 'refresher(id)' ist dies nicht der Fall, dafür jedoch bei
    Code :
    1
    
    'refresher("'+id+'")'

    Es wird dir leichter fallen, das zu verstehen, wenn du dir vorstellst, wie du den Funktionsaufruf ohne Variablen schreiben würdest.... diese Zeichenkette musst du innerhalb setTimeout() erzeugen.
     

  3. #3
    pride pride ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    14
    Sauber , Da haste mir mal wieder aus der Patsche geholfen... immer mal wieder
    Danke !
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 11.02.09, 12:31
  2. Antworten: 5
    Letzter Beitrag: 15.06.07, 10:01
  3. Antworten: 9
    Letzter Beitrag: 10.10.06, 19:15
  4. Antworten: 5
    Letzter Beitrag: 18.10.04, 20:59
  5. Funktion eine Variable übergeben?
    Von maho15 im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 14.07.02, 10:55