我已经使用了information here中的一些来创建切换状态检查,这可以通过常规即时切换正常工作,但是如何将其应用于具有慢动画的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仍然可见并且正在折叠。有任何解决方法的想法吗?! :)
由于
答案 0 :(得分:5)
检查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;
});
答案 1 :(得分:1)
您可以在toggle
之前移动测试并将其反转。如果元素在toggle
之前可见,那么您知道它将被隐藏,而相反的情况则相同。
虽然从它的外观来看,我可能不会为此使用切换,而是使用show
和hide
并自己跟踪状态。