我目前有代码执行此操作:
$('#BoxShadow_1').click(function()
{
addDivBoxShadow('BoxShadow_1');
});
$('#BoxShadow_2').click(function()
{
addDivBoxShadow('BoxShadow_2');
});
...等10个相似的元素。它工作得很好。
我也在使用JQuery。
我想将代码更改为:
for (i = 1; i < 11; i++) {
$('#BoxShadow_' + i).click(function(){
addDivBoxShadow("BoxShadow_" + i);
});
}
挑战是:
BoxShadow_10被分配给所有div而不是BoxShadow_1,BoxShadow_2等。
仅供参考我试图实现的代码是我在此URL上写的数学游戏:
tinyurl.com/sashamath
提前致谢。我希望将来做出贡献。
好的,这就是答案,使用&#39; let&#39;声明如下:
for (let i = 1; i < 11; i++) {
$('#BoxShadow_' + i).click(function(){
addDivBoxShadow("BoxShadow_" + i);
});
}
答案 0 :(得分:2)
循环问题是经典的“循环回调”问题。 “
但是你根本不需要循环。只需使用id
的{{1}}属性即可获取ID。
this
或者,如果您更改function handler() {
addDivBoxShadow(this.id);
}
$('#BoxShadow_1').click(handler);
$('#BoxShadow_2').click(handler);
函数以使用addDivBoxShadow
来获取元素,则可以直接传递它。
this
所以现在$('#BoxShadow_1').click(addDivBoxShadow);
$('#BoxShadow_2').click(addDivBoxShadow);
可以使用addDivBoxShadow
来引用绑定元素,它也会接收this
个对象作为参数。
当然,也可以使用单个选择器完成。
event