私はこのJavaScript行を使用しており、私が目にしている動作は、selectedLi
「上にスライド」することなく即座に消えるというものです。これは私が期待した動作ではありません。
selectedLi
削除する前にスライドを上に移動するにはどうすればよいですか?
selectedLi.slideUp("normal").remove();
私はこのJavaScript行を使用しており、私が目にしている動作は、selectedLi
「上にスライド」することなく即座に消えるというものです。これは私が期待した動作ではありません。
selectedLi
削除する前にスライドを上に移動するにはどうすればよいですか?
selectedLi.slideUp("normal").remove();
回答:
より明確にする必要があります。「これ」(私は同意するはずです)と言うのではなく、これを行う必要があります。
$("#yourdiv").slideUp(1000, function() {
$(this).remove();
});
$("#yourdiv")
代わりに使用すること$(this)
は完全に冗長であり、それがこのコードがOPの問題を修正する理由ではありません。このコードはcomplete
コールバックを使用するため、問題を修正します。
最も簡単な方法は、次の例のように、slideUp内の「remove()」関数を、他の人が言っているようなパラメーターとして呼び出すことです。
$("#yourdiv").slideUp("normal", function() {
$(this).remove();
});
SlideUpが終了する前にremove()が実行されないようにするには、無名function()内で呼び出す必要があります。別の同等の方法は、jQuery関数「promise()」を使用することです。私のように自明のコードが好きな人にとってはより良いです;)
$("#yourdiv").slideUp("normal").promise().done(function() {
$(this).remove();
});
selectedLi.slideUp(200, this.remove);