注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

百鬼夜行

身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。

 
 
 

日志

 
 

用闭包解决事件方法参数的传递  

2011-08-09 09:25:02|  分类: js原理及提醒记忆 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

延续上一篇事件的方向性,本篇介绍下事件中的方法是如何传递参数的。

其实说白了就是想传一个参就构建一个(args),因为FF的addEventListener的方法参数指定为event,所以要想再给这个方法传递个其他参数那就多写个(event)(args)而已,要实现这样的写法,该方法必须为一个方法闭包。

闭包:方法中返回的方法。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
</head>
<body>
<input id="btn0" type="button" value="aaa">
<input id="btn1" type="button" value="aaa">
<input id="btn2" type="button" value="aaa">
<input id="btn3" type="button" value="aaa">
<input id="btn4" type="button" value="aaa">
<script>
for(var i=0;i<5;i++)
{
   
    var f= function(i){
        return function(e){  
                alert('i::'+i);
                alert(e); 
        }  
 }
   document.getElementById("btn"+i).addEventListener("click",f(i), false);//另一种闭包

   //document.getElementById("btn"+i).attachEvent("onclick",f(i));//另一种闭包

}

</script>

<!-- <input id="tt" type="text" value="adfas" />
<script>
(function (){
 document.getElementById('tt').addEventListener('click', function (e){
  alert(this);//DOM Element
 }, false);

 document.getElementById('tt').attachEvent('onclick', function (e){
  alert(this);//window
 });
})();
</script>  -->
</body>
</html>

  评论这张
 
阅读(564)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018