javascript - 改进Jquery代码实现

标签 javascript jquery performance

我正在使用 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');
    });
});

最佳答案

您可以使用属性 starts-with selector 执行类似的操作

// 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');
});

或者给他们一个类似的类(class)

$(".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');
});

关于javascript - 改进Jquery代码实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335167/

相关文章:

javascript - AJAX 上传 Web 应用程序

jquery - jquery 和 firefox `Security error"代码 : "1000` 的问题

.net - CLR内存消耗问题

javascript - 更好更快的评估方法?

javascript - 评估 JavaScript 代码中的 Elisp 表达式

javascript/jquery 打印方法设置页边距不起作用

jquery - 单击缩略图时用不同的图像替换大图像(图库)

javascript - 如何通过 React 使用 Google Map Places API?

javascript - 如果浏览器版本早于

c# - 自动列宽 EPPlus 慢