我有一堆“项目”的div,我想在他们被点击时扩展它们。如果已经有一个项目打开,我想在滑出新项目之前隐藏它。我还想停止对已经打开的项目的单击,使其停止关闭,然后再次打开。
下面是我的意思的一个例子(警告-在浏览器中编写代码):
$('.projects').click(function() {
var clicked_project = $(this);
if (clicked_project.is(':visible')) {
clicked_project.height(10).slideUp();
return;
}
var visible_projects = $('.projects:visible');
if (visible_projects.size() > 0) {
visible_projects.height(10).slideUp(function() {
clicked_project.slideDown();
});
} else {
clicked_project.slideDown();
}
});
实际上,我的大问题在于第二部分——我不得不使用if/else——如果没有任何可见的项目,我应该能够立即运行回调。
我认为这是一个很常见的任务,我确信我遗漏了一个简化。任何建议,谢谢!