2

当我删除手风琴的一部分时,我试图让动画工作。而不是消失,我希望它做一些超级酷的事情。在这种情况下如何让动画工作?谢谢一堆。这是我的 JS:

$('document').ready(function(){
  $('#accordion .red').click(function(){

    $(this).parent('div').prev( 'h3' ).remove();
    $(this).parent('div').remove();
    $(this).parent('div').prev('div').animate("bounceslide");

    return false;
  });
});

这是我的 HTML:

<div id="accordion">

    <h3><a href="#">Section 1</a></h3>
    <div class="squares">
            <a href="#" class="green">1</a>
            <a href="# "class="red">2</a>
            <a href="#" class="blue">3</a>  
            <p>
            Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
            ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
            amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
            odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
            </p>
    </div>

    <h3><a href="#">Section 1</a></h3>
    <div class="squares">
            <a href="#" class="green">1</a>
            <a href="# "class="red">2</a>
            <a href="#" class="blue">3</a>  
            <p>
            Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
            ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
            amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
            odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
            </p>
    </div>
</div>
4

1 回答 1

2

就目前而言,您的逻辑存在一些缺陷……
您致电:

$(this).parent('div').remove();

进而:

$(this).parent('div').prev('div').animate("bounceslide");

因为$(this)不再存在于 DOM 中(它与它的父级一起被删除),所以上面的选择器将不起作用。

我建议在你的超级酷的东西之后使用动画回调来删除手风琴项目。
就像是:

$('#accordion .red').click(function(){
  var $toRemove = $(this).parent('div').prev('h3');
      $toRemove = $toRemove.add($(this).parent('div'));

  $toRemove.animate({height:0}, 500, function(){
    // This is the callback.
    $toRemove.remove();
  });

  return false;
});

JSfiddle:http: //jsfiddle.net/L9BXS/

于 2012-10-09T20:55:46.697 回答