IE下javascript的执行顺序,谁能帮忙解释?

在phpor的博客上看到一篇文章:

 

http://phpor.net/blog/post/779/

 

有这么一段代码:

 
 <input type="text" id="name" />
 <input type="text" id="password" />
 <script>
     var $ = function (id) { return document.getElementById(id);};
     $("name").focus();
     $("name").blur();
     $("name").onfocus = function () {alert('haha');}
 </script>
 
<input type="text" id="name" /> <input type="text" id="password" /> <script>   var $ = function (id) { return document.getElementById(id);};   $("name").focus();   $("name").blur();   $("name").onfocus = function () {alert('haha');} </script>

如果运行在FF下面,像我们期望的那样,在页面载入后,不会立即alert的,但是,在IE7中,页面载入后立即就是一个alert。 显然onfocus事件的绑定被提前做了,不知道为什么。
可恶的IE7!!!

 

感觉像是onfocus提前执行了,如果将onfocus放在闭包中执行,由于要使用作用域链,就不会出现提前的情况了,谁能解释一下IE这么做的原因?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值