$target.remove()
öğeyi kaldırabilir, ancak şimdi sürecin biraz animasyonla düşmesini istiyorum, nasıl yapılır?
$target.remove()
öğeyi kaldırabilir, ancak şimdi sürecin biraz animasyonla düşmesini istiyorum, nasıl yapılır?
Yanıtlar:
$target.hide('slow');
veya
$target.hide('slow', function(){ $target.remove(); });
animasyonu çalıştırmak için DOM'dan kaldırın
$(this).remove()
, geri arama işlevinin içine konur . Daha iyi çalışır$target.remove()
target.fadeOut(300, function(){ $(this).remove();});
veya
$('#target_id').fadeOut(300, function(){ $(this).remove();});
Öğeyi gizlemeniz ve sonra kaldırmanız gerekirse, hide yönteminin geri arama işlevinin içindeki remove yöntemini kullanın.
Bu çalışmalı
$target.hide("slow", function(){ $(this).remove(); })
$(this)
tekrarlamaktan hoşlanıyorum $target
.
Partiye biraz geç kaldım, ancak benim gibi bir Google aramasından gelen ve doğru cevabı bulamayan herkes için. Beni yanlış anlamayın, burada iyi cevaplar var, ama aradığım şey tam olarak değil, daha fazla uzatmadan, işte yaptığım şey:
$(document).ready(function() {
var $deleteButton = $('.deleteItem');
$deleteButton.on('click', function(event) {
event.preventDefault();
var $button = $(this);
if(confirm('Are you sure about this ?')) {
var $item = $button.closest('tr.item');
$item.addClass('removed-item')
.one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) {
$(this).remove();
});
}
});
});
/**
* Credit to Sara Soueidan
* @link https://github.com/SaraSoueidan/creative-list-effects/blob/master/css/styles-4.css
*/
.removed-item {
-webkit-animation: removed-item-animation .6s cubic-bezier(.55,-0.04,.91,.94) forwards;
-o-animation: removed-item-animation .6s cubic-bezier(.55,-0.04,.91,.94) forwards;
animation: removed-item-animation .6s cubic-bezier(.55,-0.04,.91,.94) forwards
}
@keyframes removed-item-animation {
from {
opacity: 1;
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1)
}
to {
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
opacity: 0
}
}
@-webkit-keyframes removed-item-animation {
from {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1)
}
to {
-webkit-transform: scale(0);
transform: scale(0);
opacity: 0
}
}
@-o-keyframes removed-item-animation {
from {
opacity: 1;
-o-transform: scale(1);
transform: scale(1)
}
to {
-o-transform: scale(0);
transform: scale(0);
opacity: 0
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
</head>
<body>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>id</th>
<th>firstname</th>
<th>lastname</th>
<th>@twitter</th>
<th>action</th>
</tr>
</thead>
<tbody>
<tr class="item">
<td>1</td>
<td>Nour-Eddine</td>
<td>ECH-CHEBABY</td>
<th>@__chebaby</th>
<td><button class="btn btn-danger deleteItem">Delete</button></td>
</tr>
<tr class="item">
<td>2</td>
<td>John</td>
<td>Doe</td>
<th>@johndoe</th>
<td><button class="btn btn-danger deleteItem">Delete</button></td>
</tr>
<tr class="item">
<td>3</td>
<td>Jane</td>
<td>Doe</td>
<th>@janedoe</th>
<td><button class="btn btn-danger deleteItem">Delete</button></td>
</tr>
</tbody>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>
Greg'in cevabını benim durumuma uyacak şekilde değiştirdim ve işe yarıyor. İşte burada:
$("#note-items").children('.active').hide('slow', function(){ $("#note-items").children('.active').remove(); });