作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 JavaScript,如果这个问题看起来很基础,我很抱歉。
我进行了用户界面之旅,脚本正在按我想要的方式工作,但很难维护和进行任何更改。
问:如何循环步骤,以便我只需要添加步骤标题和描述,而不必担心函数之间的链接?
还有更多建议可以让脚本更好地练习吗?
提前致谢。
脚本链接: http://jsfiddle.net/gmajsterek/4ar2vvro/15/
$(document).ready(function() {
var title = " ",
description = " ";
$(".UserGuideModal").hide();
$("#ShowHomeUserGuide").click(function () {
step1();
});
function guideModal() {
$("#btnNextTip").attr("disabled", false);
// User Guide Modal Content
$(".modal-title").html(title);
$(".guideDescription").html(description);
}
// Close btn
$(".btn-closewindow").click(function () {
$(".ugoutline").removeClass("ugoutline");
$(".step4").removeClass("ugoutline");
$(".UserGuideModal").hide(300);
});
function step1() {
$(".UserGuideModal").show(300);
title = "Step one title",
description = "Description 1";
$(".step1").addClass("ugoutline");
guideModal();
$("#btnNextTip").click(function () {
step2();
});
}
function step2() {
title = "Step two title",
description = "Description 2";
$(".step1").removeClass("ugoutline");
$(".step4").removeClass("ugoutline");
$(".step2").addClass("ugoutline");
guideModal();
$("#btnNextTip").click(function () {
$(".step2").removeClass("ugoutline");
step3();
});
}
function step3() {
title = "Step three title",
description = "Description 3";
$(".step3").addClass("ugoutline");
$(".step4").removeClass("ugoutline");
guideModal();
$("#btnNextTip").click(function () {
$(".step3").removeClass("ugoutline");
step4();
});
}
function step4() {
title = "Step four title",
description = "Description 4";
$(".step4").addClass("ugoutline");
guideModal();
$(".btn-closewindow").click(function () {
$(".step4").removeClass("ugoutline");
$(".UserGuideModal").hide(300);
});
$("#btnNextTip").attr("disabled", true);
}
});
最佳答案
获取 stepX()
函数中各个版本之间存在差异的任何内容,并将其转换为函数参数。
例如
function step(stepNumber) {
$('.step' + (stepNumber -1)).removeClass('ugoutline');
$('.step' + stepNumber).addClass('ugoutline"');
step(stepNumber + 1);
}
传入 4
,您将在 4-1 = ".step3"上执行removeClass,并在 .step4
上执行 addClass。
关于javascript - 如何让我的 JavaScript 更易于维护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311615/
p { font-family: "Comic Sans",sans-serif; } #div1 { width: 7.5%; height: 100px;
我很快就会在费城的 Code Camp 上发表关于持续集成的演讲。我没有熔岩灯、环境球或其他任何东西的经验 - 但我认为这将是对演示的一个很好的补充,激发热情。 任何人都可以推荐一款非常易于设置/使用
我是一名优秀的程序员,十分优秀!