js事件

Posted evilliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js事件相关的知识,希望对你有一定的参考价值。

一、事件绑定:

onclick方式:

 1     /**
 2      * 在js中如果我们在写的事件的时候通过onclick方式的时候同一个元素在绑定相同的事件的时候,后注册的时间会被前一个事件覆盖。
 3      * 如果通过addEventListener注册事件的时候,不会发生覆盖情况。
 4      */
 5     var test=document.querySelector(".test");
 6     test.onclick=function()
 7         alert(1)
 8     ;
 9     test.onclick=function () 
10         alert(2)
11     

 

addEventListener:

1    test.addEventListener("click",function () 
2         console.log(1);
3     );
4     test.addEventListener(click,function () 
5         console.log(2);
6     )

技术图片

二、事件流。

js中事件流分两种:

  • 冒泡事件:当子元素的事件被执行,他的父元素相同事件也依次执行。有子元素事件依次执行父元素的相同的事件。
  • 捕获事件:当触发子元素的事件的时候,先执行其父元素的相同的事件,由大到小依次执行相同的事件。最后执行的是子元素。
 1     /**
 2      *
 3      * @type htmlBodyElementaddEventListener(事件类型名称,触发事件执行的函数,boolean/)
 4      * 当我们第三个参数传递的是boolean的时候,表示该事件是在捕获阶段执行(true)还是捕获阶段执行(false)
 5      */
 6     var  body=document.querySelector(body);
 7     body.addEventListener(click,function()
 8         console.log("body")
 9     ,true);
10     test.addEventListener(click,function()
11         console.log(test)
12     ,true)

技术图片

1     /**
2      * addEventListener 第三参数传递对象的时候:capture:boolean true表示在捕获阶段执行 false是非捕获阶段执行
3      */
4     body.addEventListener(click,function()
5         console.log(body)
6     ,capture:true);
7     test.addEventListener(click,function()
8         console.log(test)
9     ,capture:true);

技术图片

默认情况下:js在执行事件的时候,是非捕获阶段执行即冒泡。

 默认事件:就是浏览器给元素提供的默认事件或者默认行为。比如a标签的点击跳转,button标签在form表单里进行提交等等。

 1   /**
 2      * 阻止默认事件: 使用事件提供的函数:event.preventDefault()来阻止浏览器提供的默认事件。
 3      */
 4     var a=document.querySelector(a);
 5     a.addEventListener(click,function(e)
 6         e.preventDefault();
 7         alert(22);
 8     );
 9     /**
10      * addEventListener: 第三个参数可以传递once:boolean 表示改事件是否执行一次.
11      */
12     test.addEventListener(click,function()
13         alert(test)
14     ,once:true);

 

1     /**
2      * addEvenetListener 第三个参数传递passive:boolean表示我们是否阻止默认时间发生 true:表示无法阻止默认事件发生,false表示可以阻止默认事件发生。
3      */
4     a.addEventListener(click,function(event)
5         event.preventDefault();
6         alert(2)
7     ,passive:true)

 

以上是关于js事件的主要内容,如果未能解决你的问题,请参考以下文章

js 温故而知新 webkitTransitionEnd 监听Transition动画结束事件

原生js禁止页面滚动

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程