Buonasera a tutti.
Vorrei sapere se è possibile chiamare una funzione contenuta all'interno di un'altra.
Ho il seguente codice:
dove la funzione cycle(), più interna a wait(), usa le variabili ms (millisecondi, passati come argomento) e ts (timer start, impostato a zero) della funzione wait(). Ora, il problema è che con il window.setInterval("cycle();",1) mi viene restituito l'errore "previsto oggetto" probabilmente perché cycle() dovrebbe trovarsi, per essere eseguita da window.setInterval(), allo stesso "livello" di wait(), e non al suo interno!codice:<html> <head> <script language="javascript"> function wait(ms) { var ts=0; function cycle() { if (ts<ms) {++ts;document.getElementById('timebox2').value=ts;} else {window.clearInterval('t0');alert("ho finito!");} } var t0=window.setInterval("cycle();",1); } </script> </head> <body> <input id="timebox" type="text" style="text-align:right;"> <input type="button" onclick="wait(parseInt(document.getElementById('timebox').value));" value="Start timer"> <input id="timebox2" type="text"> </body> </html>
Se l'unica soluzione è scorpare le 2 funzioni, mi arrenderò, ma se c'è un modo per chiamare la funzione cycle() della funzione wait() mi piacerebbe mantenere questa struttura.
Ho già provato in moltissimi modi, fra cui il disperato tentativo window.setInterval("wait.cycle()",1) (come se cycle fosse un metodo di wait, ma capisco di starmi veramente arrampicando sugli specchi! ).
Qualche idea?
Grazie a tutti anticipatamente!
Andrea