anoniem Geplaatst: 25 mei 2004 Delen Geplaatst: 25 mei 2004 Kan de ene functie de andere afbreken. Ik heb namelijk 2 functie's die elkaar tegenwerken:[code:1:ad19bae36c] <script type="text/javascript"> var i = 22; function menu(){ document.getElementById("foto").style.display = "none"; } function openen(){ document.getElementById("foto").style.display = "block"; if (i != 2) { document.getElementById("foto").style.top = i + "px"; i = i-2; setTimeout("openen();",'10'); } } function sluiten(){ if (i != 22) { document.getElementById("foto").style.top = i + "px"; i = i+2; setTimeout("sluiten();",'10'); } else document.getElementById("foto").style.display = "none"; } </script>[/code:1:ad19bae36c]Als ze beide uitgevoerd worden nlijft het divje dus staan. Quote Link naar reactie
anoniem Geplaatst: 25 mei 2004 Auteur Delen Geplaatst: 25 mei 2004 Een timer kan je stoppen met clearTimeout. De timerId die je daarvoor nodig hebt wordt geretourneerd door setTimeout bij het instellen van de timer. Zie een javascript reference voor meer details. Quote Link naar reactie
anoniem Geplaatst: 25 mei 2004 Auteur Delen Geplaatst: 25 mei 2004 Hij doet ut nie!! :cry: [code:1:a999c05fec]function openen(){ clearTimeout('sluiten'); document.getElementById("foto").style.display = "block"; if (i != 100) { i = i + 5; document.getElementById("foto").style.MozOpacity = i / 100; // document.getElementById("foto").style.opacity = i; window.status = i; var openen = setTimeout("openen();",'50'); } } function sluiten(){ clearTimeout('openen'); if (i != 0) { i = i - 5; document.getElementById("foto").style.MozOpacity = i / 100; // document.getElementById("foto").style.opacity = i; window.status = i; var sluiten = setTimeout("sluiten();",'50'); } else document.getElementById("foto").style.display = "none"; } </script>[/code:1:a999c05fec] Ik heb ook geprobeerd om 'openen'en 'sluiten' aan het begin te definieren, mocht niet baten./ Quote Link naar reactie
anoniem Geplaatst: 25 mei 2004 Auteur Delen Geplaatst: 25 mei 2004 Je declareert de variabelen 'openen' en 'sluiten' lokaal. In de scope van de andere functie zijn ze dus niet bekend. Daarnaast is het de bedoeling dat je aan clearTimeout een timerId (variabele referentie) meegeeft en niet een stringwaarde (wat je nu doet). p.s. Je gebruikt ook dezelfde namen voor functies en variabelen, probeer dat te vermijden. Het komt de duidelijkheid/leesbaarheid van je scripts ten goede en daarnaast kan het ook ongewenste fouten geven. Quote Link naar reactie
anoniem Geplaatst: 25 mei 2004 Auteur Delen Geplaatst: 25 mei 2004 [quote:9ef56502a0="Annie"]Je declareert de variabelen 'openen' en 'sluiten' lokaal.[/quote:9ef56502a0] Ik heb ook dit gezegd:[quote:9ef56502a0="Ik"]Ik heb ook geprobeerd om 'openen'en 'sluiten' aan het begin te definieren, mocht niet baten.[/quote:9ef56502a0]Met 'aan het begin' bedoel ik dus direct na de <script> tag.[quote:9ef56502a0="Annie"]Daarnaast is het de bedoeling dat je aan clearTimeout een timerId (variabele referentie) meegeeft en niet een stringwaarde (wat je nu doet).[/quote:9ef56502a0]Dit zegt me niet zo heel veel; ik ben geen kenner, ik ben een prutser (was men vast al wel achter). Probeer te leren van voorbeelden, bronnen bekijken. Dus wat bedoel je met 'variable referentie'? Quote Link naar reactie
anoniem Geplaatst: 25 mei 2004 Auteur Delen Geplaatst: 25 mei 2004 nou.. strings zet je tussen haakjes :) Quote Link naar reactie
anoniem Geplaatst: 26 mei 2004 Auteur Delen Geplaatst: 26 mei 2004 [quote:8c3bea455b="teacher"]nou.. strings zet je tussen haakjes :)[/quote:8c3bea455b]Dit is geen zinnig antwoord op dit:[quote:8c3bea455b="Ik"]Dus wat bedoel je met 'variable referentie'?[/quote:8c3bea455b] Dus: Wat is een 'variable referentie'? Quote Link naar reactie
anoniem Geplaatst: 26 mei 2004 Auteur Delen Geplaatst: 26 mei 2004 [code:1:28d7bf85dc] klokkie = setTimeout('boe()', 100); clearTimeout(klokkie); [/code:1:28d7bf85dc] Quote Link naar reactie
anoniem Geplaatst: 26 mei 2004 Auteur Delen Geplaatst: 26 mei 2004 oh.. Ja, ook alwel geprobeerd, lukte ook niet.. Quote Link naar reactie
anoniem Geplaatst: 26 mei 2004 Auteur Delen Geplaatst: 26 mei 2004 En wat lukte er dan niet? Krijg je een foutmelding? Wordt de functie uberhaupt aangeroepen? Heb je al geprobeerd om het exacte probleem te lokaliseren door bijvoorbeeld strategisch alerts te plaatsen of delen uit te schakelen in het script? Misschien ligt het probleem wel heel ergens anders. Het basic debug werk dus. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen