slideUp()
スライドアニメーションの後に要素を削除し、要素が削除された後にコールバックを適用するようにjQueryのメソッドを拡張しようとしています。
これまでのところ、要素を削除する次の方法があります。
$.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 から削除された後にコールバックを適用する最良の方法は何でしょうか?
これは、あなたが遊ぶための現在のコードのデモフィドルです
編集
私の最初のアイデアは、基本的に同じように実行される拡張機能を作成することでしたslideUp()
。つまり、同じオプションを使用して、各要素に対してコールバックを実行しますが、いくつか考えた後、要素ごとのコールバックはあまり役に立たないことに気付きました。コンテキストとして設定する要素はありません。その点では、要素が削除された後に単一のコールバックを実行するのが最善の方法のようです。