for循环中的闭包函数使用问题
<head>
<script language="javascript">
window.onload=function(){
var obj=document.getElementById("mai");
var items=["click","keypress"];
for(var i=0;i<items.length;i++){
(function(){
var item=items[i];
obj["on"+item]=function(){
alert("thanks for your"+item);
};
})();
} };
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<p id="mai">风雨走过</p>
</body>
</html>
这儿的闭包函数中为什么items[i]中i总是为2???还有闭包函数(function(){})()
最右边的的括号一般填写的是什么数据???
------解决方案--------------------
JScript code
for(var i=0;i<3;i++){
(function(x){
return function(){
alert(x);
}
})(i);
//就是把外面的i变量传给x在闭包内使用
}