Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    testo temporizzato in un div

    dev'essere una sciocchezza, ma non riesco a trovare l'errore.
    l'effetto di questo script dovrebbe essere quello di cambiare ogni minuto il testo contenuto in in div (id='titolo'), ma non funzia:

    function cambiatitolo(){
    var minuto = new Date();
    var txt = document.getElementById("titolo");
    if((minuto.getMinutes() % 2) != 0){
    txt.innerHTML = "testo1";
    }
    else{
    txt.innerHTML = "testo2";
    clearInterval(timerID);
    }
    }

    timerID = setInterval('cambiatitolo()', 10000);

    consigli?

  2. #2
    Dunque, ricapitoliamo:
    Il tuo codice fa esattamete quello che gli hai detto di fare, e cioè
    • fa partire un timer che ad ogni 10 secondi chiama la cambiatitolo()
    • allo scattare del timer, se il minuto corrente modulo 2 è diverso da zero scrive 'testo1' nel div
    • se invece il minuto corrente modulo 2 è uguale a zero, scrive 'testo2' nel div e ... FERMA IL TIMER! ... perché?


    Io l'avrei fatta così:
    Codice PHP:
    function cambiatitolo(){
        var 
    minuto = new Date();
        var 
    txt document.getElementById("titolo");
        if((
    minuto.getMinutes() % 2) != 0){
            
    txt.innerHTML "testo1";
        }
        else {
            
    txt.innerHTML "testo2";
        }
    }

    timerID setInterval(cambiatitolo10000); 
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    ferma tutto perché ho il terrore di sovraccaricare il processore (eh, lo so, è un'idiozia).
    però il mio problema è che in realtà questo script non funziona e non capisco perché.
    hai qualche consiglio da darmi?

  4. #4

    risolto: testo temporizzato in un div

    cazz... erano le virgolette, credo. funziona.
    grazie!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    40
    E' sempre preferibile comunque utilizzare un setTimeout in una funzione che richiama se stessa.

  6. #6
    magari ci metto un contatore, e quando raggiunge le 10 ripetizioni lo faccio bloccare.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    40
    esatto.
    Io in genere utilizzo dei contatori come proprietà di un oggetto in modo da avere una persistenza specifica dell'evento.

  8. #8
    cioè, ehm, come fai? (io faccio solo prove! sono un dannato lamer!)

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    40
    Se è un div, ad esempio a scatenare l'evento identifico il div con il suo "id" appositamente attribuitogli e successivamente lo identifico con:
    codice:
    var ilMioDiv = document.getElementById("idDelMioDiv");
    Andrò poi ad assegnargli una proprietà "custom", che so, "times":
    codice:
    ilMioDiv.times=0;
    Nella funzione di temporizzazione andrò a controllare ed implementare la proprietà:
    codice:
    if (ilMioDiv.times<10){
    ilMioDiv.times+=1;
    /* etcoetera etcoetera */
    }
    else{
    /* etcoetera etcoetera */
    }
    Ho abbandonato da tempo innerHTML e document.write() in favore di funzioni DOM standard ECMA.

  10. #10
    fichissimo. ho provato ad implemantare questa soluzione (con a sola differenza che faccio clearinterval se txt.volte >9 perché anche se non riesco a spiegarlo mi pare più economico). eppure non funziona.
    potrebbe essere dalla funzione isdefined usata a naso?

    function cambiatitolo(){
    var txt = document.getElementById("titolo");
    var minuto = new Date();
    if(isDefined(txt.volte)){txt.volte+=1;} else{txt.volte = 0;}
    if((minuto.getMinutes() % 2) != 0){
    txt.innerHTML = "testo1 "+ txt.volte;
    }
    else{
    txt.innerHTML = "testo2 "+ txt.volte;
    }
    if(txt.volte>9){clearInterval(timerID);}
    }

    timerID = setInterval(cambiatitolo, 10000);

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.