作者SansWord (是你)
看板Web_Design
标题Re: [问题] js在回圈里设定函数
时间Wed Jan 15 11:01:25 2014
※ 引述《lturtsamuel (港都霹雳火)》之铭言:
: 不好意思问题有点不清楚
: 我想问的是,在一个for回圈中,变数i的质每次都会变
: 要怎麽用i来当作函数的变数呢?
: 好像越讲越不清楚,举个例子好了
: 像是我html里有三个div,id就叫d1,d2,d3好了
: 现在我想要设定他们的onclick,按到d1时会alert("hello 1!")这样,以此类推
: 直觉想到的方法是
: window.onload = {
: for(var i = 1; i <= 3; i++) {
var d = getElementById('d' + i),
message = 'hello' + i;
: d.onclick = function() {
alert(message);
: };
: }
: }
: 不过这样每个都alert("hello 4!")
: 我的想法是把i用字面上的形式保留下来,不过不知道怎麽做
: 所以po来这边请各位高手解答,感恩...
虽说用 closure 很潮,可是如果再这个使用情境,其实只要把message 先行算出即可。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.147.33
1F:→ mmis1000:其实你可以用推文,用closure可以减少重复的代码数量 01/15 11:48
2F:→ lyforever:很遗憾 你的方法会失效 XD 01/15 13:22
3F:→ lyforever:用closure不是潮 是有其必要性 01/15 13:42
5F:→ s25g5d4:问题根本不在先行算出 而是後面的运算会取代前面的结果 01/15 15:50
6F:→ s25g5d4:Javascript 里面没有 block 作用域 我猜你可能是写 C 的 01/15 15:50