jQuery - 使用动画测试slideToggle状态?
问题描述:
我使用了一些information here来创建一个切换状态检查,它可以在常规的即时切换中正常工作,但是如何将它应用于具有慢动画的slideToggle?这里是我的代码:jQuery - 使用动画测试slideToggle状态?
$('#elemToggle').click(function() {
$("#elem").slideToggle('slow');
if($("#elem").is(":visible")) {
$('#elemToggle').addClass('down');
$('#elemToggle').removeClass('up');
} else {
$('#elemToggle').addClass('up');
$('#elemToggle').removeClass('down');
}
return false;
});
上述不起作用,因为当你点击按钮,技术上ELEM依然可见,只是被倒塌。任何想法的解决办法吗?! :)
感谢
答
做完整的回调支票的slideToggle()
$('#elemToggle').click(function() {
$("#elem").slideToggle('slow', function() {
if($("#elem").is(":visible")) {
$('#elemToggle').addClass('down');
$('#elemToggle').removeClass('up');
} else {
$('#elemToggle').addClass('up');
$('#elemToggle').removeClass('down');
}
});
return false;
});
答
的toggle
之前,您可以只移动测试并倒转。如果元素在toggle
之前是可见的,那么您知道它将隐藏起来,而相反。
虽然从它的外观来看,我可能不会使用切换为此,而是使用show
和hide
并自己跟踪状态。
+0
这是一个好主意,谢谢 - 我喜欢通过显示/隐藏来跟踪状态的想法 – Nick 2011-05-19 13:53:07
这太棒了,谢谢!我想我会跟着这个,我也喜欢它跟踪国家的方式,所以如果你把垃圾邮件切换按钮它总是会结束在正确的类:) – Nick 2011-05-19 13:53:43