传媒

JavaScript中的事件传播捕捉、发生、起泡分别是什么意思?

字号+ 作者:lobtom 来源:未知 2020-01-08 08:44 我要评论( )

另外,用0级dom中定义的事件处理模型定义的onclick等的事件处理程序有这三个特性吗? 可选中1个或多个下面的关键词,搜索相关资料。也可直接点搜索资料搜索整个问题。 展开全部

  另外,用0级dom中定义的事件处理模型定义的onclick等的事件处理程序有这三个特性吗?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部首先你要明白一点,当一个事件发生的时候,该事件总是有一个事件源,即引发这个事件的对象,一个事件不能凭空产生,这就是事件的发生。

  当事件发生后,这个事件就要开始传播。为什么要传播呢?因为事件源本身并没有处理事件的能力。例如我们点击一个按钮时,就会产生一个click事件,但这个按钮本身不能处理这个事件(废话),事件必须从这个按钮传播出去,从而到达能够处理这个事件的代码中(例如我们给按钮的onclick属性赋一个函数的名字,就是让这个函数去处理该按钮的click事件)。

  当事件在传播过程中,找到了一个能够处理它的函数,这时候我们就说这个函数捕捉到了这个事件。

  说到这里,关键的问题来了,那就是一个函数是如何捕捉一个事件的呢?这就涉及到事件的冒泡了。

  为了更好地理解冒泡的概念,我建议你现在想象一下你的面前放着一杯水,但这杯水和我们平时看到的有点点不同,它分为数层,每一层又分成一或多个区域,最顶层是我们熟悉的窗口对象(即window对象),下一层分为好几个区域(document对象、history对象等等),而document对象的下一层又分为多个子对象。

  事件的传播是有方向的,当点击一个按钮时所产生的事件从这个按钮处开始向上传播(就像一个水泡从杯底冒上来,这就是之所以叫事件冒泡的原因),但这个事件总是寻找特定的属性是否有值。例如按钮的click事件先寻找在按钮上是否有onclick属性的有意义的定义(即该属性指向一个存在的函数或一段可执行的语句),如果有,执行这个函数或语句;然后事件继续向上传播,到达按钮的上一层对象(例如一个form对象或document对象,总之是包含了按钮的父对象),如果该对象也定义了onclick属性,则执行属性的值。

  所以,如果这个按钮上面有3层(form、document、window),且这三层都定义了onclick属性,则当按钮的click事件产生时,将会调用4个(包括按钮本身的一个)函数或执行4段语句。

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 传媒大学学生坠楼事件-----面对这样的爱情你是怎么想的呢

    传媒大学学生坠楼事件-----面对这样的爱情你是怎么想的呢

    2020-01-08 08:45

  • 请问不支持DOM事件流到底是什么意思?

    请问不支持DOM事件流到底是什么意思?

    2020-01-08 08:44

  • 孙子打爷爷新闻事件用传媒学概念怎么分析

    孙子打爷爷新闻事件用传媒学概念怎么分析

    2020-01-08 08:43

  • 传媒该如何对待穷人向富豪求助事件

    传媒该如何对待穷人向富豪求助事件

    2020-01-08 08:43

网友点评