广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    javascript事件模型实例分析

    2018-04-07 07:50:28 次阅读 稿源:互联网
    零七广告

    本文实例讲述了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程序设计有所帮助。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告