2015-12-22 11 views
5

löscht Ich habe eine Klonelementfunktion erstellt, die angezeigt werden kann view demo here. Wenn die Reset-Taste gedrückt wird, werden alle geklonten Elementelemente entfernt. Wenn Sie jedoch versuchen, ein weiteres Element in die Elementliste einzufügen, wird das hinzugefügte Element "NEU" im DOM nicht angezeigt.So verhindern Sie, dass jQuery .remove() die Elternklasse

$('#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

Sie müssen angeben, welches Element Sie entfernen möchten. Wenn Sie einen Klassennamen verwenden, sind alle Elemente mit dieser Klasse betroffen. Wenn Sie sicher sein möchten, dass Sie Hilfe erhalten, bitten Sie bitte den entsprechenden Code, damit Sie das Verhalten emulieren können. – Franco

+0

@Franco Wenn ich meine Frage nicht schlecht geschrieben habe, ist es ziemlich selbsterklärend. Die Elemente, die ich entfernen möchte, sind '.list-Items', die in der Demo demonstriert werden und im Code geschrieben sind. (SIE WERDEN MIT DER AKTUELLEN FUNKTION ENTFERNT). Wenn Sie die Demo sehen, werden Sie bemerken, wenn der Benutzer die Reset-Taste drückt, werden alle Elemente entfernt, wenn Sie versuchen, neue Elemente hinzuzufügen, sind sie nicht auf dem DOM wieder in der Frage geschrieben und wird in der Demo – NewKidOnTheBlock

+0

ich gesehen das, und ich habe auch gesehen, dass du vor diesem eine andere Frage gestellt hast. Wie Sie sehen können, haben Sie nicht viel Reaktion für die Faust bekommen und Sie können natürlich tun, was Sie wünschen. Ich habe dir nur einen Rat gegeben, um deine Chance auf eine gute Antwort auf dein Problem zu erhöhen. – Franco

Antwort

1

Wo Sie Ihre Reset-Taste, um den Code zu ändern haben in Ihrer if-Anweisung an die folgende

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

Im Moment Sie Ihre Liste-Elemente die folgende Art und Weise eingestellt haben ..

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 

Sie müssen Sie den Code ändern, damit er Folgendes ausführt:

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

Sie sollten diese ersetzen:

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

durch diese:

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

Sie für das Element suchen, die 'id' ist 'list-item', während nach dem Sie suchen möchten Das Element, dessen Klasse 'List-Items' ist.

+0

Ich habe das versucht, aber klonierte Elemente nicht entfernen – NewKidOnTheBlock

+0

sicher, dieser Befehl wird jedes Listenelement durch den eleClone Inhalt ersetzen. –

Verwandte Themen