我正在使用jquery,这段代码正在工作,但是我想改进它,因为我没有重复使用代码。有一种方式可以直接发送$("#btn_step1"),改变数字,哦,步骤?
$( document ).ready(function() {
var activeDiv = $("#mod_formSteps-1");
var body = $("html, body");
activeDiv.siblings().hide();
$("#btn_step1").on("click", function( event ){
event.preventDefault();
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-2");
body.animate({scrollTop:0}, '500', 'swing');
});
$("#btn_step2").on("click", function( event ){
event.preventDefault();
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-3");
body.animate({scrollTop:0}, '500', 'swing');
});
$("#btn_step3").on("click", function( event ){
event.preventDefault();
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-4");
body.animate({scrollTop:0}, '500', 'swing');
});
});发布于 2014-08-15 23:03:02
您可以使用属性从选择器开始执行类似的操作
// get all elements with id's that start with btn_step
$("[id^='btn_step']").on("click", function( event ){
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-" + (+this.id.replace('btn_step','') + 1));
body.animate({scrollTop:0}, '500', 'swing');
});或者给他们上类似的课
$(".theClass").on("click", function( event ){
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-" + (+this.id.replace('btn_step','') + 1));
body.animate({scrollTop:0}, '500', 'swing');
});更多地查看代码,实际上您可以这样做
$(".theClass").on("click", function( event ){
activeDiv = activeDiv.hide().next().show();
body.animate({scrollTop:0}, '500', 'swing');
});发布于 2014-08-15 22:38:10
您可以将类用于btn_steps而不是单个ID。使用类,您可以使用一个函数,即一旦单击.btn_step元素就会触发。
发布于 2014-08-15 22:43:04
唯一能改变的就是一个数字
$( document ).ready(function() {
var activeDiv = $("#mod_formSteps-1"),
body = $("html, body"),
steps = 4,
i = 0;
activeDiv.siblings().hide();
for (i; i < steps; i++) {
var selector = "#btn_step" + i;
$(selector).on("click", function( event ){
event.preventDefault();
activeDiv.hide();
activeDiv.next().show();
activeDiv = $("#mod_formSteps-" + (i + 1));
body.animate({scrollTop:0}, '500', 'swing');
})
}
});https://stackoverflow.com/questions/25335167
复制相似问题