Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    residenza
    Bologna
    Messaggi
    15

    array, variabili undefinied

    Buongiorno, ho creato uno script che dovrebbe cambiare automaticamente il contenuto di <h1>, leggendo dei valori da un array.. il problema e` che le variabili vengono restituire come undefinied (provando con alert al posto di text)

    $( document ).ready(function(){

    function h1changer(i) {

    var h1 = new Array("HELLO", "HOWDY", "AIGHT", "BRUV");
    var x = h1.length;

    for (var i = 0; i < x; i++) {


    setTimeout(function() {
    $('h1').text(h1[i]);
    }, 2000);

    }

    }

    h1changer();

    });


    qualche idea ?
    Saverio Gentile, web, grafica, fotografia.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    perche quel setTimeout?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    residenza
    Bologna
    Messaggi
    15
    per far si che cambi il contenuto di <h1> ogni 2 secondi
    Saverio Gentile, web, grafica, fotografia.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    una soluzione potrebbe essere questa:

    codice:
    var h1 = new Array("HELLO", "HOWDY", "AIGHT", "BRUV");
    var x = h1.length-1;
    i = 0;
    (function h1changer() {
    $('h1').text(h1[i]);
      if (i < x) i++;
      else i = 0;
    setTimeout(h1changer,2000);
    })();

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    residenza
    Bologna
    Messaggi
    15
    funziona! grazie mille!

    Ma cosa sbagliavo ? come mai lo script non riusciva a leggere i valori dell'array ? e il -1 dopo il valore di x.lenght per cosa sta?
    Saverio Gentile, web, grafica, fotografia.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    quando viene lanciata la funzione definita in setTimeout sono passati 2 secondi, il ciclo è già terminato e la variabile i è valorizzata con 4. Nell'array sono definiti 4 elementi(da 0 a 3) quindi l'elemento con indice 4 è sempre undefined.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.