jQuery empty()回调没有被触发

时间:2013-07-29 21:26:07

标签: jquery html ajax

我正在清空所有子元素,然后应用具有相同类但在单独元素内的元素。

empty()函数的回调未触发。我错过了这个类/回调问题吗?

$('.commentsButton').click(function(e){
e.preventDefault();
if ('.openComments').length) {
    $(this).closest('.box').removeClass(openComments);

    $('.commentsBox').empty(function(){
            $(this).closest('.box').find('.commentsBox').load('url.com');
            $(this).closest('.box').addClass(openComments);
        });
} else {
        $(this).closest('.box').find('.commentsBox').load('url.com');
        $(this).closest('.box').addClass(openComments);
    }
});

<div class="box">
  <a class="commentsButton" href="#"></a>
   <div class="commentsBox"></div>
</div>
<div class="box">
  <a class="commentsButton" href="#"></a>
   <div class="commentsBox"></div>
</div>

2 个答案:

答案 0 :(得分:1)

只需在没有任何参数的情况下调用空函数,然后执行任何您喜欢的操作。

$('.commentsBox').empty();
$('.commentsBox').each(function(){
      $(this).closest('.box').find('.commentsBox').load('url.com');
      $(this).closest('.box').addClass(openComments);
});

答案 1 :(得分:0)

$('.commentsButton').on('click', function(e){
    e.preventDefault();

    $('.box').removeClass('openComments');
    $('.commentsBox').empty();
    $(this).closest('.box').addClass('openComments')
           .find('.commentsBox').load('url.com');
});