Visualizzazione risultati 1 fino 5 di 5

Discussione: [JS]setTimeout e passare un oggetto alla funzione

  1. #1
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito [JS]setTimeout e passare un oggetto alla funzione

    Si puo' passare un oggetto del DOM alla funzione richiamata con setTimeout() ?

    ho provato

    setTimeout('nome_funzione('+oggetto+')',150);

    oppure

    setTimeout(nome_funzione(oggetto),150);

    ma l'unico risultato e' il passaggio della stringa ([oggetto-del-DOM]).

    GRAZIE

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

  3. #3
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito

    GRAZIE mi ha aiutato

    ora avrei un altro quesito:

    - e' possibile passare (sempre alla funzione richiamata con setTimeout) un oggetto e un altro valore ma "per valore". Mi spiego. Ho una serie di richiami a setTimeout. Dopo ogni richiamo la variabile con il valore da passare cambia di valore (scusa il gioco di parole).
    Facendo
    setTimeout('nome_funzione('+variabile+'), 150);
    ogni richiamo alla funzione viene fatto con il valore della variabile al momento della lettura dell'istruzione.

    siccome devo passare anche un oggetto, seguendo il link che mi e' stato fornito sopra, ho modificato la riga sopra cosi':

    setTimeout(function() {nome_funzione(oggetto,variabile);}, 150)

    l'oggetto viene passato, MA il valore della variabile viene preso non al momento della lettura dell'istruzione, MA al momento della sua esecuzione (che dipende dal timeout impostato cioe' il secondo parametro). Almeno penso che funzioni cosi', visto che tutte i setTimeout me li esegue con l'ultimo valore di "variabile". Ultimo valore che si ha prima che inizi a eseguire i setTimeout.

    Spero di non aver ingarbugliato troppo la cosa.

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Prova a fare qualcosa del genere ( anche io ho avuto lo stesso problema ):
    Codice:
    setTimeout((function(o, v) {
          return function() {
                nome_funzione(o, v);
          };
    })(oggetto, variabile), 150);

  5. #5
    esotica non è connesso Utente giovane
    Data registrazione
    08-05-2008
    Messaggi
    87

    Predefinito

    GRAZIEEEEEEEEEEEEEEEEEE

    tutto funziona !!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •