【发布时间】:2011-06-22 17:00:46
【问题描述】:
我使用 JavaScript 创建了一个“向导”,并根据人们的回答将您带到某些结果 div。它按我想要的方式工作,但是这段代码非常重复。有没有办法清理这段 JavaScript 代码?
$(".hidden").hide();
$(function() {
$("#start_button").click(function(){
$("#wizard_start").hide();
$("#Q1").show();
});
$("#reset").click(function(){
$("#wizard_start").show();
$(".hidden").hide();
$(":input").not(":button, :submit, :reset, :hidden").each( function() {
this.value = this.defaultValue;
});
});
$("#q1_button").click(function(){
if ($("input[value='q1_1']:checked").val()){
$("#Q2").show();
$("#Q1").hide();
}
else if ($("input[value='q1_2']:checked").val()) {
$("#results1").show();
$("#Q1").hide();
}
else if ($("input[value='q1_3']:checked").val()) {
$("#Q3").show();
$("#Q1").hide();
}
});
$("#q2_button").click(function(){
if ($("input[value='q2_1']:checked").val()){
$("#results2").show();
$("#Q2").hide();
}
else {
$("#results3").show();
$("#Q2").hide();
}
});
$("#q3_button").click(function(){
if ($("input[value='q3_1']:checked").val()){
$("#Q4").show();
$("#Q3").hide();
}
else {
$("#results1").show();
$("#Q3").hide();
}
});
$("#q4_button").click(function(){
if ($("input[value='q4_1']:checked").val()){
$("#Q5").show();
$("#Q4").hide();
}
else {
$("#Q6").show();
$("#Q4").hide();
}
});
$("#q5_button").click(function(){
if ($("input[value='q5_1']:checked").val()){
$("#results4").show();
$("#Q5").hide();
}
else {
$("#Q7").show();
$("#Q5").hide();
}
});
$("#q6_button").click(function(){
if ($("input[value='q6_1']:checked").val()){
$("#Q8").show();
$("#Q6").hide();
}
else {
$("#Q9").show();
$("#Q6").hide();
}
});
$("#q7_button").click(function(){
if ($("input[value='q7_1']:checked").val()){
$("#results4").show();
$("#Q7").hide();
}
else {
$("#results5").show();
$("#Q7").hide();
}
});
$("#q8_button").click(function(){
if ($("input[value='q8_1']:checked").val()){
$("#results6").show();
$("#Q8").hide();
}
else {
$("#results7").show();
$("#Q8").hide();
}
});
$("#q9_button").click(function(){
if ($("input[value='q9_1']:checked").val()){
$("#results8").show();
$("#Q9").hide();
}
else if ($("input[value='q9_2']:checked").val()) {
$("#Q10").show();
$("#Q9").hide();
}
else if ($("input[value='q9_3']:checked").val()) {
$("#results3").show();
$("#Q9").hide();
}
});
$("#q10_button").click(function(){
if ($("input[value='q10_1']:checked").val()){
$("#results9").show();
$("#Q10").hide();
}
else {
$("#results3").show();
$("#Q10").hide();
}
});
$("#q2_backbutton").click(function(){
$("#Q1").show();
$("#Q2").hide();
});
$("#q3_backbutton").click(function(){
$("#Q1").show();
$("#Q3").hide();
});
$("#q4_backbutton").click(function(){
$("#Q3").show();
$("#Q4").hide();
});
$("#q5_backbutton").click(function(){
$("#Q4").show();
$("#Q5").hide();
});
$("#q6_backbutton").click(function(){
$("#Q4").show();
$("#Q6").hide();
});
$("#q7_backbutton").click(function(){
$("#Q5").show();
$("#Q7").hide();
});
$("#q8_backbutton").click(function(){
$("#Q6").show();
$("#Q8").hide();
});
$("#q9_backbutton").click(function(){
$("#Q6").show();
$("#Q9").hide();
});
$("#q10_backbutton").click(function(){
$("#Q9").show();
$("#Q10").hide();
});
});
http://jsfiddle.net/dswinson/PXp7c/56/
另外,有没有办法在结果 div 上添加一个“返回开始”按钮,让您回到开头并重置所有单选按钮?
谢谢!
【问题讨论】:
-
实时链接是一个很好的辅助问题,但也总是发布相关代码在问题中(即使它是重复的)。两个原因。 1.人们不应该通过链接来帮助你。 2. StackOverflow 不仅是为您现在提供的资源,也是为将来遇到类似问题的其他人提供的资源。外部链接可能会被移动、修改、删除等。通过确保问题中包含相关代码,我们可以确保问题(及其答案)在合理的时间内保持有用。
-
看来这属于codereview。
-
我已将我的代码添加到问题中,但感谢您的链接。我会在那里发布我的问题。
标签: javascript wizard repeat