javascript - 循环避免重复代码

标签 javascript jquery

myApp.onPageInit("page", function(page) {
    $$('#ajax_step1').on('submitted', function(e) {
        mainView.router.loadPage('transfer1');
    });

    $$('#ajax_step2').on('submitted', function(e) {
        mainView.router.loadPage('transfer2');
    });
    ...
});

函数内的代码看起来非常重复。我怎样才能以更聪明的方式做同样的事情?

我尝试了类似的方法,但无法按预期工作。

for (var i = 0; i < 6; i++) {
    $$('#ajax_step'+i).on('submitted', function(e) {
        mainView.router.loadPage('transfer'+i);
    });
}

最佳答案

更好的方法是使用通用类以及包含与特定元素实例相关的元数据的 data 属性。尝试这样的事情:

<div class="ajax_step" data-transfer="transfer1"></div>
myApp.onPageInit("page", function(page) {
    $$('.ajax_step').on('submitted', function(e) {
        mainView.router.loadPage($(this).data('transfer'));
    });
});

关于javascript - 循环避免重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609348/

相关文章:

jquery - 文本区域不更新

javascript - 如何使用类名从多个项目的内容中使用 jQuery 构建 URL 查询字符串

javascript - 使用jquery将表头的值分配给相应的列

javascript - Notify.js 清除旧通知

javascript - Google Analytics for File Downloads 未触发,放置问题?

javascript - JQuery 导航树点击打开/关闭

javascript - 如何在ajax中获取数组的值

javascript - Selenium 网络驱动程序 : Element is not currently visible

javascript - 如何将页面上选定的文本替换为其他文本?

javascript - 停止眨眼事件