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

    Domanda urgente su esercizio javascript

    Salve a tutti,
    innanzitutto mi presento, sono un nuovo iscritto come, credo, si possa vedere.
    Io studio design al politecnico di Milano e domani dovrò affrontare l'ultimo esame di informatica.
    Non sono molto bravo anche perchè, diciamocela tutta, avendo preso design di saper programmare in javascript molto poco mi interessa (mi scuso con quelli del settore).
    Il nostro professore ci ha dato un foglio con degli esercizi dell'anno passato e sono arrivato a uno di questi esercizi che non riesco a completare, dunque richiederei gentilmente un vostro aiuto.
    La consegna è la seguente:
    "Si scriva una pagina html che mostri in alto il numero 0 e sotto un'immagine oltre ad altri paragrafi. Cliccando sul numero questo deve cambiare in 1, poi in 2 e così via. Cliccando sul resto della pagina, invece, il numero deve essere decrementato(sempre di uno in uno). Infine, cliccando sull'immagine il testo dell'ultimo paragrafo in fonda alla pagina deve essere sostituito dal proprio nome ripetuto tante volte quanto è il valore del numero al momento del click."

    Dunque, per quanto riguarda l'incrementare e il decrementare il numero, seppur con un paio di espedienti ci sono arrivato.
    Ho anche fatto si che cliccando sull'immagine appaia in un paragrafo scritto il mio nome (Enrico, per la cronaca).
    Vi allego quindi ciò che ho fatto.

    <html>
    <head>
    <script language="JavaScript">

    var i=0;

    function increm(e) {
    i = i+2;
    e.target.innerHTML=i;
    }

    function decrem(e){
    i=i-1;
    document.getElementById("numero").innerHTML=i;
    }



    function nome(e){
    i=i+1
    var j=document.getElementById("par").innerHTML="Enrico ";

    }


    </script>
    </head>

    <body onclick="decrem(event)">

    <h1 id="numero" onclick="increm(event)">0</h1>

    [img]immagine.jpg[/img]</img>
    <p id="par">Par 1</p>


    Par 2</p>


    Par 3</p>

    </body>
    </html>

    Ora quello che vi chiedo è come fare in modo che il mio nome appaia scritto tante volte quanto è il numero in quel momento.
    Come potete notare le funzioni fatte in aula sono elementari e si riducono ai comandi principali e ai cicli for e while.
    Mi chiedevo se ci fosse un metodo per risolvere il mio problema che non implichi procedure più avanzate.
    Vi ringrazio in anticipo.

    Enrico

  2. #2
    so che non è ritenuto esattamente simpatico uppare i post nei forum, ma avrei proprio bisogno di una risposta.

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    usa una stringa a cui concatenare il nome in un ciclo

    var risultato='', nome='Enrico';
    for(var k=0;k<i;++k){
    risultato+=nome+' ';
    }
    document.getElementById("par").innerHTML=risultato ;

  4. #4
    Grazie della risposta, funziona.
    L'unica cosa è che il nome mi viene scritto una volta in più del numero ma non importa cmq credo che il professore valuterà il concetto.
    Mi permetto di esporre un altro problema e chiedere una soluzione, se possibile.
    La traccia dice:
    Si scriva una pagina con un titolo e uno e piu paragrafi e cliccando sul titolo il testo deve cambiare da "titolo" a "titolo cliccato" e viceversa.
    Invece cliccando sul resto della pagina deve comparire un alert che dice "Cosa fai?".

    Va bo fino alla parte del titolo cliccato e viceversa ci sono.
    L'unica cosa, che è un prolema che tra l'altro mi trovo a dover affrontare in molti esercizi, è il come fare a dividere la funzione che mi cambia il titolo dal resto della pagina, nel senso che ovviamente se metto l'alert come funzione onclick nel body, quando vado a cliccare sul titolo simultaneamente mi compare anche l'alert. questo è il mio codice (senza alert)

    <html>
    <head>

    <script type="text/javascript">

    function cambiaTesto(e) {

    if(e.target.innerHTML=="Esercizio"){e.target.inner HTML="Testo cliccato"}
    else{e.target.innerHTML="Esercizio"}

    }

    </script>

    </head>
    <body>

    <h1 onclick="cambiaTesto(event)"> Esercizio</h1>

    </body>
    </html>

    Come si ovvia al problema?
    Scusatemi se vi bombardo di domande.
    Grazie

    Enrico

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    l' oggetto event va studiato, perche' e' potente ma molto articolato
    http://javascript.html.it/articoli/l...ser-ed-esempi/

    per evitare che l' evento risalga fino al body ti basta aggiungere
    e.stopPropagation();
    nella funzione cambiaTesto

    non funzionera' con IE, ma dal resto del tuo codice non mi sembra interessi mantenere la compatibilita'

  6. #6
    Ahhh finalmente grazie mi è veramente utile questa cosa 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.