2011-01-05 18 views
1

HTML verwenden:ein DIV Entfernen Sie einen Link

<div class="row"> 
<!-- content --> 
<a href="#" class="remove">remove</a> 
</div> 

JS:

$('.remove').click(function(){ 
    $(this).parent().remove(); 
    return false; 
}); 

Wenn nur ein DIV ist es funktioniert OK, aber wenn es mehrere DIVS (class="row") sind, wird es nicht tun etwas. Es werden auch keine Fehler zurückgegeben.

EDIT: Ich sollte hinzufügen, dass standardmäßig gibt es nur ein div - zusätzliche divs werden dynamisch mit einer jQuery-Klonfunktion erstellt - vielleicht ist dies der Grund, warum es die neue Verknüpfung/Div nicht erkennt?

+2

Ist das */'absichtlich? – Corey

+0

Nein, tut mir leid, es ist nicht (nur entfernt). – GSTAR

+0

Habe einfach noch ein paar Tests gemacht - wenn es mehrere DIVS gibt dann funktioniert nur der erste 'remove'-Button - die nachher machen nichts mehr. – GSTAR

Antwort

1

Es funktioniert für mich: JS Fiddle demo.

Da die anderen div s dynamisch geladen werden, müssen Sie verwenden:

$('.remove').live('click', 
    function(){ 
     $(this).parent().remove(); 
     return false; 
}); 

JS Fiddle demo (featuring add and remove).

+0

Ja das ist richtig. Vielen Dank! – GSTAR

+0

Gern geschehen, aber wenn das auf deine Frage geantwortet hat, dann wäre ein Up-Vote oder accept'd super ... = p –

+0

Natürlich :) Danke nochmal. – GSTAR

0

Wenn ich verstehe Sie richtig - es funktioniert wie beabsichtigt zu sein scheint - Demo

+0

Prost Mate. Kannst du meinen letzten Schnitt lesen? – GSTAR

0

scheint für mich ganz gut zu arbeiten. Schauen Sie sich meine JSFiddle (mit zusätzlichen Entfernung Animation zum Spaß)

UPDATE

jedes Mal, wenn Sie ein neues Objekt erstellen, müssen Sie erneut ausführen den Code

doCloneObject(); 

//Once you create the new object(s), tell jQuery what to do with them. 
$('.remove').click(function(){ 
    $(this).parent().toggle('fast', function(){ 
      $(this).remove(); 
    }); 
    return (false); 
}); 
+0

Prost Mate. Kannst du meinen letzten Schnitt lesen? – GSTAR

+0

Nachdem Sie den Klon ausgeführt haben, müssen Sie das '$ ('. Remove') erneut ausführen click (function() {...});' code to jQuery weiß, was mit den neuen Elementen passiert. – Dutchie432

0

Code Stellen Sie sicher, nur ausgeführt, wenn die ganze Seite geladen wird, das heißt:

$(document).ready(function() { 
    $('.remove').click(function(){ 
    $(this).parent().remove(); 
    return false; 
    }); 
}); 
Verwandte Themen