我有这个函数:
$('#output').on('click', '[data-action="DELETE_ITEM"]', function () {
var itemInfo = $(this.dataset)[0];
var buttonOfProductHTML = document.querySelector(`[data-id='${itemInfo.id}']`);
var buttonOfDeletion = document.querySelector('[data-action="DELETE_ITEM"]');
$(buttonOfDeletion.parentElement.parentElement).fadeOut(1000);
var itemIndex = $('[data-action="DELETE_ITEM"]').index(this);
cart.splice(itemIndex, 1);
sessionStorage['shopCart'] = JSON.stringify(cart);
outputCart();
handleCartButton(buttonOfProductHTML, 0);
})
只有当我从cart.splice中删除代码时,我才能看到fadeOut效果,该代码从表(购物车)中删除一行。我猜删除的速度比效果快得多。我如何才能适当地延迟删除购物车项目以查看fadeOut效果?
谢谢,
发布于 2020-10-12 01:29:20
jQuery的fadeOut
方法,接受回调函数作为第二个参数,这是可选的。回调函数在动画结束时执行。因此,您可以执行fadeOut
并将所有代码放入回调函数中。:)
$('#output').on('click', '[data-action="DELETE_ITEM"]', function() {
var itemInfo = $(this.dataset)[0];
var that = this;
var buttonOfProductHTML = document.querySelector(`[data-id='${itemInfo.id}']`);
var buttonOfDeletion = document.querySelector('[data-action="DELETE_ITEM"]');
$(buttonOfDeletion.parentElement.parentElement).fadeOut(1000, () => {
var itemIndex = $('[data-action="DELETE_ITEM"]').index(that);
cart.splice(itemIndex, 1);
sessionStorage['shopCart'] = JSON.stringify(cart);
outputCart();
handleCartButton(buttonOfProductHTML, 0);
});
})
https://stackoverflow.com/questions/64306256
复制相似问题