我遍历一组自定义对象,对于数组中的每个对象,我创建一个带有on click事件监听器的按钮,动态设置on click事件的结果。换句话说,单击按钮A可能会导致警报'foo',单击按钮B可能会导致不同的行为 - 警告'bar'。
我的JSHint linter说“不要在循环中创建函数”。
我希望SO社区可以分享更好的设计模式来实现这个目标(vanilla js或JQuery)。
查看Fiddle - 这是我正在做的极其简化的版本,但说明了这一点。
Javascript(ES6):
getSupportFragmentManager().beginTransaction().add(R.id.folders_section, ctrlFragOne, "album_search_results").add(R.id.selection_section, ctrlFragTwo, "indicator").commit();
HTML
class Tool {
constructor (name, mainFunction) {
this.name = name;
this.mainFunction = mainFunction;
}
getName() {
return this.name;
}
getMainFunction() {
return this.mainFunction;
}
}
var hammer = new Tool('hammer', 'bang on nails');
var saw = new Tool('saw', 'cuts heavy wood');
var toolbox = [hammer, saw];
for (let i in toolbox) {
$('.wrapper').append('<div class=\"'+toolbox[i].getName()+' button\">'+toolbox[i].getName()+'</div>');
$('.wrapper').on('click', '.'+toolbox[i].getName(), function() {
alert(toolbox[i].getMainFunction());
});
}
答案 0 :(得分:0)
您只需将点击功能分配给共享班级RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ index-merchant.php?id=%1 [L,NC,QSA]
,并将邮件分配到.button
属性: DEMO
data