• User Newbie

    Esercizio html-javascript

    Vi sarei grato se sapreste indicarmi come risolvere questo semplice esercizio.

    "Definire una pagina HTML con una lista di elementi numerati (3 o 4).
    Cliccando sul testo di ogni elemento della lista, l'elemento deve essere spostato
    in fondo alla lista.
    Facendo doppio clic, l'elemento rimane dov'è, ma una sua copia compare in fondo alla lista".

    Come deve essere strutturato il file javascript esterno collegato alla pagina HTML?

    Grazie.


  • User Attivo

    Se è un compito in classe non rispondiamo!

    Il problema di fondo è che nel doubleclick c'è il click!

    
    <script>
    function duplica(el)
    {
    	var obj = el.cloneNode(true);
    	document.getElementById('lista').appendChild(obj);
    }
    function sposta(el)
    {
    	var obj = el.cloneNode(true);
    	el.setAttribute('id','elimina');
    	document.getElementById('lista').appendChild(obj);
    	var obj_del = document.getElementById('elimina');
    	document.getElementById('lista').removeChild(obj_del);	
    }
    </script>
    
    <ul id='lista'>
    	<li onClick="sposta(this);" onDblClick="duplica(this);">1li</li>
        <li onClick="sposta(this);" onDblClick="duplica(this);">2li</li>
        <li onClick="sposta(this);" onDblClick="duplica(this);">3li</li>
        <li onClick="sposta(this);" onDblClick="duplica(this);">4li</li>
        <li onClick="sposta(this);" onDblClick="duplica(this);">5li</li>
    </li>
    
    

    Di conseguenza con l'uso degli eventi in modo normale ti ritrovi a far funzionare bene il click, ma il doubleclick lo fa sull'elemento successivo nella lista, dato che il primo click l'ha fatto su un elemeno che è stato spostato in fondo alla pagina...

    Sto lavorando per sistemare il problema!