javascript事件模型实例分析
作者:bea
本文实例讲述了javascript事件模型的用法。分享给大家供大家参考。具体分析如下: 一、事件模型 冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点 捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反 DOM标准事件模型:DOM标准既支持冒泡型事件,也支持捕获型事件,可以说是两者的结合体,首先是捕获型,接着冒泡传递 二、事件对象 在IE浏览器中事件对象是window的一个属性,在DOM标准中,event必须作
本文实例讲述了javascript事件模型的用法。分享给大家供大家参考。具体分析如下:
一、事件模型
冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点 捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反 DOM标准事件模型:DOM标准既支持冒泡型事件,也支持捕获型事件,可以说是两者的结合体,首先是捕获型,接着冒泡传递
二、事件对象
在IE浏览器中事件对象是window的一个属性,在DOM标准中,event必须作为唯一的参数传给事件处理函数
获得兼容的event 对象:
function(event){
//event 是作为DOM标准的参数传入处理函数
event = event ?event : window.event;
}
在IE中,事件的对象包含在event的srcElement中,而在DOM标准中,对象包含在target属性中 获得兼容的event 对象指向的元素:
var target =event.srcElement ? event.srcElement : event.target ;
前提是,保证event对象已经正确的获取
三、事件监听器
IE下,注册的监听器逆序执行,即后面注册的先执行
element.attachEvent('onclick',observer); //注册监听器
element.detachEvent('onclick',observer) //移除监听器
第一个参数为事件名称,第二个为回调处理函数
DOM标准下:
element.addEventListener('click',observer,useCapture)
element.removeEventListener('click',observer,useCapture)
第一个参数为事件名称,没有“on”的前缀,第二个参数为回调处理函数,第三个参数说明回调函数是在捕获阶段调用还是冒泡阶段调用,默认true为捕获阶段
四、事件传递
兼容地取消浏览器的事件传递
function someHandler(event){
event = event || window.event;
if(event.stopPropagation) //DOM标准
event.stopPropagation();
else
event.cancelBubble = true; //IE标准
}
取消事件传递后的默认处理
function someHandler(event){
event = event || window.event;
if(event.preventDefault) //DOM标准
event. preventDefault ();
else
event.returnValue = true; //IE标准
}
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
一、事件模型
冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点 捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反 DOM标准事件模型:DOM标准既支持冒泡型事件,也支持捕获型事件,可以说是两者的结合体,首先是捕获型,接着冒泡传递
二、事件对象
在IE浏览器中事件对象是window的一个属性,在DOM标准中,event必须作为唯一的参数传给事件处理函数
获得兼容的event 对象:
function(event){
//event 是作为DOM标准的参数传入处理函数
event = event ?event : window.event;
}
在IE中,事件的对象包含在event的srcElement中,而在DOM标准中,对象包含在target属性中 获得兼容的event 对象指向的元素:
var target =event.srcElement ? event.srcElement : event.target ;
前提是,保证event对象已经正确的获取
三、事件监听器
IE下,注册的监听器逆序执行,即后面注册的先执行
element.attachEvent('onclick',observer); //注册监听器
element.detachEvent('onclick',observer) //移除监听器
第一个参数为事件名称,第二个为回调处理函数
DOM标准下:
element.addEventListener('click',observer,useCapture)
element.removeEventListener('click',observer,useCapture)
第一个参数为事件名称,没有“on”的前缀,第二个参数为回调处理函数,第三个参数说明回调函数是在捕获阶段调用还是冒泡阶段调用,默认true为捕获阶段
四、事件传递
兼容地取消浏览器的事件传递
function someHandler(event){
event = event || window.event;
if(event.stopPropagation) //DOM标准
event.stopPropagation();
else
event.cancelBubble = true; //IE标准
}
取消事件传递后的默认处理
function someHandler(event){
event = event || window.event;
if(event.preventDefault) //DOM标准
event. preventDefault ();
else
event.returnValue = true; //IE标准
}
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JavaScript插件化开发教程(五)
- 对JavaScript中this指针的新理解分享
- IE下支持文本框和密码框placeholder效果的JQuery插件分享
- 有效提高JavaScript执行效率的几点知识
- JavaScript日期时间与时间戳的转换函数分享
- JavaScript监听和禁用浏览器回车事件实例
- JavaScript编程中容易出BUG的几点小知识
- JavaScript实现的双向跨域插件分享
- JavaScript判断变量是否为空的自定义函数分享
- 分享两个手机访问pc网站自动跳转手机端网站代码
- js判断登录与否并确定跳转页面的方法
- jQuery知识点整理
- 浅谈jquery回调函数callback的使用
- jQuery修改class属性和CSS样式整理
- javascript中AJAX用法实例分析
- JavaScript基础函数整理汇总
- JS解析XML实例分析
- javascript中键盘事件用法实例分析
- javascript中cookie对象用法实例分析