Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    setTimeout e le virgolette

    salve,
    ho questo codice, ma voglio generalizzarne le funzioni, e non mi riesce
    codice:
    var buildings = new Array("casa.png");
          function costruisci(posizione,arpos) {
            var p = document.getElementById(posizione);
            p.style.background= "url(build.gif) center no-repeat"
            var tim = setTimeout('add("uno",0)', 5000);
          }
          function add(posizione,arpos) {document.getElementById(posizione).style.backgroundImage= "url(casa.png)"}
    quindi, ho un array che contiene i nomi di una serie di immagini.
    la prima funzione (costruisci) riceve l'id di un div e la posizione nell'array di un determinato elemento (arpos), ne cambia l'immagine di sfondo, e attende 5s prima di richiamare un'altra funzione, che cambia nuovamente lo sfondo.
    alla seconda funzione (add) devo passare l'id del div, e la posizione dell'array che contiene il nome dell'immagine da sostituire

    ho postato il codice funzionante, ma siccome ho 15 div, non posso creare 15*2 funzioni diverse solo perchè non riesco a sistemare delle banali virgolette.

    se faccio
    codice:
            var tim = setTimeout('add(posizione,0)', 5000);
    ovviamente non funziona.
    stesso problema se faccio
    codice:
    function add(posizione,arpos) {document.getElementById(posizione).style.backgroundImage= "url(buildings[arpos])"}
    cosa mi sfugge?

  2. #2
    codice:
    function add(posizione,arpos) {document.getElementById(posizione).style.backgroundImage= "url(buildings[arpos])"}
    Ti sei dimenticato il ; alla fine

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Plopper
    codice:
    function add(posizione,arpos) {document.getElementById(posizione).style.backgroundImage= "url(buildings[arpos])"}
    Ti sei dimenticato il ; alla fine
    Mettere il ; (punto e virgole) alla fine della riga in una funzione è irrilevante per il funzinamento, meglio metterlo per avere un codice scritto correttamente ma non implica il funzionamento della funzione o dello script.
    @peppeocchi
    Prova cosi:
    codice:
    var tim = setTimeout(function(){add(posizione,0)}, 5000);
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    niente da fare, il ; mi sarà sfuggito nel copiare il codice

  5. #5
    var tim = setTimeout(function(){add(posizione,0)}, 5000);
    funziona alla perfezione grazie mille!

    mi resta l'ultimo problema
    codice:
    function add(posizione,arpos) {
    document.getElementById(posizione).style.backgroundImage= "url(buildings[arpos])"
    }

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    document.getElementById(posizione).style.backgroundImage= "url("+buildings[arpos]+")"
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7


    avevo già provato con +buildings[arpos]+ ma avevo sbagliato gli apici e avevo abbandonato questa pista.....grazie mille

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.