【发布时间】:2012-02-23 06:14:11
【问题描述】:
我想将同一个事件绑定到 3 个复选框,但每次都使用不同的目标:
var checkboxes = {
'selector1' : 'target1',
'selector2' : 'target2',
'selector3' : 'target3',
};
for (selector in checkboxes) {
var target = checkboxes[selector];
if (jQuery(selector).is(':checked')) {
jQuery(target).show();
}
else {
jQuery(target).hide();
}
jQuery(selector).bind('change', function() {
if ($(this).is(':checked')) {
jQuery(target).show();
}
else {
jQuery(target).hide();
}
});
};
但它不起作用:在“更改”时,3 个选择器显示/隐藏第三个目标。
【问题讨论】:
-
该构造
{'key': 'value'...}在 JavaScript 中称为 Object Literal,而不是关联数组。 -
target1等指的是什么?复选框 id 属性? -
@Michael:嗯,语法被称为对象字面量。代码创建了一个对象,它是一个关联数组。
标签: javascript jquery loops closures