当我删除 Accordion 的一部分时,我试图让动画正常工作。我希望它能做一些 super 酷的事情,而不是直接消失。在这种情况下如何让 animate 工作?非常感谢。这是我的 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>
最佳答案
你目前的逻辑有一点缺陷......
您调用:
$(this).parent('div').remove();
然后:
$(this).parent('div').prev('div').animate("bounceslide");
因为 $(this)
不再存在于 DOM 中(它与其父级一起被删除),所以上面的选择器将不起作用。
我建议使用动画回调来删除您的 super 酷东西之后的 Accordion 项目。
像这样的东西:
$('#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/
关于jquery - 如何让 animate 在 Accordion 菜单上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12808123/