当我删除手风琴的一部分时,我正试图让动画工作。而不仅仅是消失,我希望它做一些超级酷酷的事情。如何让动画在这个实例中工作?谢谢一堆。这是我的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>
答案 0 :(得分:2)
你的逻辑中有一点瑕疵,因为它目前正在...... 你打电话:
$(this).parent('div').remove();
然后:
$(this).parent('div').prev('div').animate("bounceslide");
由于DOM中不再存在$(this)
(它已与其'父级一起删除),因此上述选择器将无效。
我建议使用动画回调来删除 super duper cool 之后的手风琴项目。
类似的东西:
$('#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/