[jQuery] far ripetere una funzione

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
Salve, io ho questa semplice funzione che clona una porzione di codice e poi la elimina:
Codice:
function aggiungiGenere() {            
 $('#unoGenere select').clone().insertBefore('#dueGenereinput').attr('name','dueGenere');          

$('#dueGenere input').attr('value','Rimuovi').click(function() {
$("select[name='dueGenere']").remove(); 
$('#dueGenere input').attr('value','Aggiungi');   
})}
che si applica a questo codice html:
Codice:
<div id="unoGenere"><select name="unoGenere" size="5">
<option>Azione</option>
<option>Commedia</option>
<option>Drammatico</option>
<option>Fantascienza</option>
<option>Horror</option>
<option>Thriller</option>         
</select></div>       
<div id="dueGenere"><input type="button" value="Aggiungi" onclick="aggiungiGenere()"/></div>

il problema è che si applica una sola volta, ad esempio se clicco sul bottone per clonare quella porzione e poi lo rimuovo se voglio riaggiungerlo non succede niente.

Si verifica una sola volta, la domanda è: come faccio a farla ripetere sempre?

Grazie per la vostra pazienza.
Buona serata
 
Mi pare che tu abbia complicato tutto inutilmente. Prova così:
HTML:
<!DOCTYPE html>
<html lang="it">
    <head>
        <title>jQuery</title>
        <meta charset="utf-8">
    </head>

    <body>
        <div id="generi">
            <div class="genere">
                <select name="genere[]">
                    <option value="1">Opzione 1</option>
                    <option value="2">Opzione 2</option>
                    <option value="3">Opzione 3</option>
                    <option value="4">Opzione 4</option>
                    <option value="5">Opzione 5</option>
                </select>
            </div>
        </div>

        <div>
            <button id="add">Aggiungi genere</button>
        </div>

        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script>
        $(function() {
            $("#add").click(function() {
                var elem = $(".genere").first().clone();
                elem.html(elem.html() + '<a href="#" class="remove">Rimuovi</a>');

                elem.appendTo($("#generi"));
            });

            $("#generi").on("click", ".remove", function() {
                $(this).parent().remove();
            });
        });
        </script>
    </body>
</html>
 
Ti ringrazio per il tuo aiuto.

Purtroppo ho dovuto complicare tutto perché le informazioni ottenuto vanno ad una pagina PHP, altrimenti me la sarei cavata anche con un toggle.

Comunque funziona, Grazie :o
 

Discussioni simili