搜索
写经验 领红包
 > 地理

js中事件(js的事件是什么)

导语:Js基础13:事件基础

1、事件的三个阶段(事件冒泡)

首先来看一段代码:

 <div id=&34;>     <button id=&34;>按钮</button> </div>  get_id(&34;).onclick = function(){     console.log(this); }  get_id(&34;).onclick = function(){     console.log(this); }

上述代码运行会发现,点击按钮的时候,不仅仅打印了按钮,还打印出了盒子div,这个行为就叫做事件冒泡:

多个元素有层次关系,这些元素都注册了相同的事件,如果里面的元素的事件触发了,外面的元素的该事件也会触发。

事件有三个阶段:事件发生的时候,要经过事件的三个阶段,我们常常使用的是事件冒泡阶段,而其他两个阶段不能人为干预。

在JavaScript中,事件有以下三个阶段:

第一阶段:捕获阶段(是由父亲传递给儿子,从外向内)第二阶段:目标阶段(执行当前点击的元素代码)第三阶段:冒泡阶段(是儿子传递给父亲,从内向外)

1.1、事件对象event

兼容处理:

 get_id(&34;).onclick = function(e){     var e=e || window.event // 兼容IE8     console.log(e); }  //e.pageX——表示鼠标距离,网页左上角的水平距离 //e.pageY——表示鼠标距离,网页左上角的垂直距离 //e.target——返回触发此事件的元素(事件的目标节点)

1.2、阻止事件冒泡

语法:

 e.stopPropagation();//停止传播,不再派发事件,符合w3c标准,谷歌和火狐支持 IE8不支持 e.cancelBubble=true;//确定取消冒泡,IE特有 居然没兼容

html和css代码:

 <div id=&34; style=&34;>     <div id=&34; style=&34;>         <div id=&34; style=&34;></div> </div> </div>

JavaScript代码

 get_id(&34;).onclick = function (e) {     console.log(e);     // console.log(e.target); } get_id(&34;).onclick = function (e) {     console.log(this.id); } get_id(&34;).onclick = function (e) {     console.log(this.id);     // var e=e||window.event;     // e.cancelBubble=true;     e.stopPropagation(); }

1.3、阻止事件默认行为

语法:

 e.preventDefault()//阻止默认 符合w3c标准 只有IE8不支持 e.returnValue=false;//阻止默认行为 IE特有 火狐不支持(亲测支持)

html和css代码:

 <a id=&34; href=&34;>叩丁狼</a>

JavaScript代码

 get_id(&34;).onclick = function (e) {     console.log(this.id);     var e = e || window.event;     if (e.preventDefault) {         e.preventDefault();    } else {         e.returnValue = false;    } }

本文内容由小迪整理编辑!