我需要隐藏容器div中的所有类.panel的div。然后在隐藏之后,选择性地取消隐藏几个.panel div。我尝试在hide()上使用回调,但回调针对隐藏的每个元素运行。在某些情况下,我会在一个几乎无限或长时间的循环中结束,因为同一个div被隐藏并反复显示。隐藏几个div并且只有在全部隐藏后才运行回调函数
这并不作为第二要素的工作正在上映之前,隐藏齐全:
$("#detailsPanel").children(".panel").hide();
$("#membershipPanel").slideDown();
$("#specializationsPanel").slideDown();
如果我窝在回调后隐藏这些步骤中,回调运行,每.panel DIV那是隐藏的。
全码
这里是我的全部功能,是否可以帮助找到我的逻辑缺陷。
function goWizard(step) {
switch (step) {
case 0:
$("#formPanel").hide();
$("#beginPanel").slideDown();
$("#instructionsPanel").slideDown().children().slideDown();
$("#loginPanel").slideDown().children().slideDown();
break;
case 1:
$("#beginPanel").hide().children().hide();
$("#stepTitle").text("Membership Category/Specialist Category :: Step 1 of 8");
$("html, body").animate({ scrollTop: 0 }, "slow");
$("#summaryPanel").slideDown().children().show();
$("#formPanel").slideDown();
var i = 0;
var $panels = $("#detailsPanel").children(".panel");
$panels.hide(function() {
i++;
if (i == $panels.length) {
$("#membershipPanel").show();
$("#specializationsPanel").show();
}
});
$("#startOverButton").show();
$("#prevStepButton").hide();
$("#nextStepButton").show();
$("#startOverButton").click(function() { goWizard(0); });
$("#nextStepButton").click(function() { goWizard(2); });
break;
case 2:
$("#beginPanel").hide().children().hide();
$("#stepTitle").text("Section Membership :: Step 2 of 8");
$("html, body").animate({ scrollTop: 0 }, "slow");
$("#summaryPanel").slideDown().children().show();
$("#formPanel").slideDown();
var i = 0;
var $panels = $("#detailsPanel").children(".panel");
$panels.hide(function() {
i++;
if (i == $panels.length) {
$("#sectionsPanel").show();
}
});
$("#startOverButton").hide();
$("#prevStepButton").show();
$("#nextStepButton").show();
$("#prevStepButton").click(function() { goWizard(1); });
$("#nextStepButton").click(function() { goWizard(3); });
break;
case 3:
$("#beginPanel").hide().children().hide();
$("#stepTitle").text("Insurance Compliance :: Step 3 of 8");
$("html, body").animate({ scrollTop: 0 }, "slow");
$("#summaryPanel").slideDown().children().show();
$("#formPanel").slideDown();
var i = 0;
var $panels = $("#detailsPanel").children(".panel");
$panels.hide(function() {
i++;
if (i == $panels.length) {
$("#insurancePanel").show();
}
});
$("#startOverButton").hide();
$("#prevStepButton").show();
$("#nextStepButton").show();
$("#prevStepButton").click(function() { goWizard(2); });
$("#nextStepButton").click(function() { goWizard(4); });
break;
default:
$("#beginPanel").slideDown();
$("#formPanel").hide();
break;
}
}
'隐藏()儿童()隐藏()'和'.slideDown()儿童()。 show();'没有意义 – DaniP