您的位置:首页 > Web前端 > JavaScript

javascript事件冒泡和捕获

2012-07-08 12:24 274 查看
首先理解一下事件:

  这里又引出了两个概念

      1: 消息

      2: 事件响应

  当浏览器页面文档的DOM元素发生事件时,将向浏览器发出一个消息(message),这个消息以Event对象的形式生成并沿着DOM树向上传播.浏览器事件的种类很多,包括鼠标点击,鼠标移动,键盘,失去与获得焦点等等.在Javascript中,这些事件都以对应的属性来表示,将一个闭包(我们知道其实函数就是闭包)赋给这个属性,或者注册到这个属性,这个闭包就成为这个事件的处理函数,也成为事件句柄.闭包的执行过程被称为事件响应.

那么我们继续看

<script>
document.getElementsByTagName("input")[0].onclick=function(){
console.log(arguments.length); // Firefox为1 , IE为0
console.log(typeof window.event); //Firefox 为undefined , IE为object
}
</script>
<input type="button" value="点击" />


Netscape和Microsoft对Event对象处理是不同的. 在IE下event对象会作为window下的属性存在,而Netscape下event对象是被作为事件接收函数(闭包)的参数传递的.

解决兼容Netscape和Microsoft的event对象兼容:

<script>
document.getElementsByTagName("input")[0].onclick=function(event){
var event=event || window.event;
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: