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);
});
}
答案 0 :(得分:4)
更好的方法是使用公共类以及包含与特定元素实例相关的元数据的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'));
});
});
答案 1 :(得分:3)
$$('[id^=ajax_step]').on('submitted', function(e) {
mainView.router.loadPage('transfer'+this.id.slice(9));
});
'[id^=ajax_step]'
选择ID以&#34; ajax_step&#34;开头的所有元素。