jQuery UI在.hide(';blind';).remove()之后留下垃圾元素

jQuery UI在.hide(';blind';).remove()之后留下垃圾元素,jquery,jquery-ui,Jquery,Jquery Ui,我有几个div元素,用户可以在某个时候隐藏它们 当这种情况发生时,一个jQuery('div').hide('blind').remove()被触发,因此元素首先从视口中隐藏,然后从DOM中删除。从DOM jQuery UI中删除元素时,会留下som垃圾箱(每个div隐藏并删除一个垃圾箱div): 现在我使用jQuery('divs-wrapper-selector')删除它们但我想知道为什么jQuery UI要这样做,以及这样做是否有副作用。您的.hide()调用没有及时完成.remove

我有几个
div
元素,用户可以在某个时候隐藏它们

当这种情况发生时,一个
jQuery('div').hide('blind').remove()被触发,因此元素首先从视口中隐藏,然后从DOM中删除。从DOM jQuery UI中删除元素时,会留下som垃圾箱(每个div隐藏并删除一个垃圾箱div):


现在我使用
jQuery('divs-wrapper-selector')删除它们
但我想知道为什么jQuery UI要这样做,以及这样做是否有副作用。

您的
.hide()
调用没有及时完成
.remove()
调用。您需要向
.hide()
方法提供回调,如下所示:

$('target-elem').hide('blind', function () {
  $(this).remove();
});

有关更多信息,请参见

您使用的jQuery/jQueryUI的哪个版本?jQuery v1.8.3,jQuery UI v1.9.2在回调中,我建议使用
$(this).remove()而不是
$('target-elem')。删除()
@Dom:的确,建议的解决方案不起作用(垃圾元素仍然存在),但使用$(this).remove()它起了很大的作用。@tbjers:你能用Dom的建议更新你的答案吗?谢谢
$('target-elem').hide('blind', function () {
  $(this).remove();
});