2007年8月28日 星期二

javascript & HTML - 近日小記

(1) 傳值、傳址鬼打牆
在重新開始復習C++的傳值、傳址的當兒,沒想到也在js 裏遇到這種問題

code長這樣:

for (var i=0; i< max; i++){
elements[i].onclick = function(){
alert(i);
}
}
那當你點下element[0]的時候,到底會alert啥咪?答案是 ... max。而且不管click element[1], element[2]...答案都相同!因為匿名function註冊的寫法是傳址的效果。

寫成這樣:
function clickHandle(i){
elements[i].onclick = alert(i);
}

for (var i=0; i< max; i++){
clickHandle(i);
}

就會沒事,因為傳進function裏的值是類似傳值的效果…鬼打牆的數小時....

(2) textarea 包textarea ....
是不行的,我可能是公司裏最後一個知道的人Orz.....

沒有留言: