关于javascript 移除事件问题

myz2010 2013-08-18 12:36:33
EventUtil.addHandler(document,"readystatechange",function(event){

if(document.readyState=="complete"||document.readyState=="interactive")
{
EventUtil.removeHandler(document,"readystatechange",arguments.callee);
alert("Content loaded");
}

});
对于上面的代码来说,当readystatechange事件触发时,会检测document.readyState的值,看当前是否已经进入交互或者完成阶段,如果是,则移除相应的时间处理程序以免在其他阶段再执行,注意,由于事件处理程序使用了匿名函数,因此这里使用arguments.callee来引用该函数......
------------------------------------------华丽的分割线----------------------------------------------------------------------------------------------------------------------------------------------以上内容是出自《JavaScript高级程序设计(第2版)》,小弟不明白的是:“则移除相应的时间处理程序以免在其他阶段再执行”,这里在其他阶段再次执行是什么意思?既然已经执行过了,为什么还会执行?在网上找了些资料,但是还是感觉很迷惑,还望大虾指点迷津,先谢谢各位了。
...全文
100 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlackMonkey 2013-08-18
  • 打赏
  • 举报
回复
那段代码,其实在document.readyState为interactive的时候,就弹出alert("Content loaded");,同时取消了document.onreadystatechange的事件监听。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧