2015-12-22 8 views
5

Ho creato una funzione elemento clone che può essere visualizzata view demo here. Quando viene premuto il pulsante di ripristino, rimuove tutti gli elementi dell'elemento clonato, tuttavia, quando si tenta di aggiungere un altro elemento all'elenco degli elementi, l'elemento aggiunto "NUOVO" non è visibile con il DOM.Come prevenire jQuery .remove() dall'eliminazione della classe genitore

$('#add-btn').on('click',function(){ 
    $('.list-items:first').clone().appendTo("#items").addClass('isVisible'); 
    $('#items-fields').val(''); 
}) 

// RESET BUTTON 
$('.reset').on('click', function(){ 
    if($('.list-items').length != 1); 
    $('.list-items:last').remove(); 
    event.preventDefault(); 
}) 
+0

È necessario specificare quale elemento si desidera rimuovere. Quando lo fai usando un nome di classe, tutti gli elementi con questa classe ne risentiranno. Se vuoi essere sicuro di ricevere aiuto, invia per favore tutto il codice pertinente, quindi è possibile emulare il comportamento. – Franco

+0

@Franco a meno che non abbia scritto male la mia domanda, è abbastanza auto esplicativo .. gli elementi che voglio rimuovere sono ".list-items" che sono dimostrati nella demo e sono scritti nel codice. (SONO STATI RIMOSSI CON LA FUNZIONE ATTUALE). se visualizzi la demo noterai quando l'utente preme il pulsante di reset tutti gli elementi vengono rimossi, quando provi ad aggiungere nuovi elementi non sono visibili sul DOM, nuovamente scritto nella domanda ed è dimostrato nella demo – NewKidOnTheBlock

+0

che ho visto e ho anche visto che hai postato un'altra domanda prima di questa. Come puoi vedere, non hai ottenuto molte risposte per il primo e puoi ovviamente fare ciò che desideri. Ti stavo solo dando un consiglio per aumentare le tue possibilità su una buona risposta per il tuo problema. – Franco

risposta

1

Dove avete il vostro pulsante di reset modificare il codice nel tuo istruzione if al seguente

$('.reset').on('click', function(){ 
    if($('.list-items').length > 1) { 
     $('.list-items:last').remove(); 
    } 
}) 

Al momento avete impostato i vostri list-elementi seguente modo ..

When a user clicks the delete button, if the number of things with the class list-item does not equal 0, then remove the last list-item 

È è necessario modificare il codice in modo che il seguente:

When a user clicks the delete button, if the number of things with the class list-item is greater than 1, then remove the last list-item 
1

Si dovrebbe sostituire questo:

var eleClone = $('list-items').clone(true); 

da questo:

var eleClone = $('.list-items').clone(true); 

Si cerca l'elemento che 'id' è 'list-item', mentre si desidera cercare l'elemento che classe è 'lista-elementi'.

+0

Ho provato questo ma non rimuove gli elementi clonati – NewKidOnTheBlock

+0

sicuro, quel comando sostituirà ogni elemento della lista dal contenuto di eleClone. –

Problemi correlati