gpt4 book ai didi

jquery - 扩展 jQuery 的 SlideUp() 以在动画后删除元素

转载 作者:行者123 更新时间:2023-12-01 04:12:18 25 4
gpt4 key购买 nike

我希望扩展 jQuery 的 slideUp() 方法,以在幻灯片动画之后删除元素,并在删除元素之后应用回调。

到目前为止,我有这个方法来删除元素:

$.fn.slideUpRemove = function () {
var args = arguments;
return this.each(function () {
var $this = $(this);
$.fn.slideUp.apply($this, args).promise().done(function () {
$this.remove();
});
});
};

但是当调用时,这会在 remove() 之前运行回调:

$('div').slideUpRemove(function () {
console.log($('div').length);
});

从 DOM 中删除元素后应用回调的最佳方法是什么?

这是一个 demo fiddle 使用当前代码供您使用

编辑

我最初的想法是基本上创建一个 slideUp() 的扩展,它将以相同的方式执行,即使用相同的选项并为每个元素运行回调,但是经过一番思考后我意识到每个元素的回调没有多大用处,因为没有任何元素可以设置为上下文。在这一点上,删除元素后运行一个回调似乎是最好的方法。

最佳答案

如果在删除所有元素后应调用一次处理程序:

$.fn.slideUpRemove = function (d, c) {
var _this = this,
duration = $.isNumeric(d) || $.isPlainObject(d) ? d : 400,
callback = $.isFunction(c) ? c : d;

return this.slideUp(duration).promise().done(function () {
_this.remove();
if ($.isFunction(callback)) callback.call();
});
};

http://jsfiddle.net/6sKRC/

关于jquery - 扩展 jQuery 的 SlideUp() 以在动画后删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com