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

时间:2013-08-12 19:28:45

标签: jquery jquery-ui

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

发生这种情况时,会触发jQuery('div').hide('blind').remove();,因此首先会从视口中隐藏元素,然后从 DOM 中删除元素。从 DOM jQuery-UI 中删除元素后,将som垃圾箱放在后面(隐藏和删除每个div的一个trash-div):

<div class="ui-effects-wrapper" style="font-size: 100%; background: none repeat scroll 0% 0% transparent; border: medium none; margin: 0px; padding: 0px; position: relative; width: 1032px; height: 0px; float: none; overflow: hidden;"></div>

现在我正在使用jQuery('divs-wrapper-selector').find('.ui-effects-wrapper').remove();删除它们,但我想知道为什么 jQuery-UI 这样做,如果这有副作用。

1 个答案:

答案 0 :(得分:3)

您的.hide()来电尚未及时完成.remove()来电。您需要提供.hide()方法的回调,如下所示:

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

有关详细信息,请参阅http://api.jqueryui.com/hide/