事件对象、事件冒泡、事件捕获

事件对象:
                    event:描述或者包含事件的更加详细的信息;
                    event:不兼容FF;
                    ev: 兼容IE9+,FF,Chrome,IE8--报undefined;
                    兼容写法:var oEvent=ev||event;
                    clientX:X轴的坐标
                    clientY:Y轴的坐标

冒泡:
                    子元素的事件可以传递到父元素身上,如果父元素身上有相同事件会触发,否则的话继续冒泡;
                    取消事件冒泡:
                                    oEvent.cancelBubble = true;
                    事件捕获:父元素的事件可以传递到子元素身上(事件下沉);
                                    设置捕获:setCapture();
                                    释放捕获: releaseCapture();
                            
                            window.onload=function(){
                                        var oBox1=document.getElementById("box1");//爷爷
                                        var oBox2=document.getElementById("box2");//父亲
                                        var oBox3=document.getElementById("box3");//儿子
                                        oBox1.onclick=function(){
                                                    alert(1);
                                        }
                                        oBox2.onclick=function(ev){   //冒泡触发的必须是相同事件
                                                    var oEv=ev||event;
                                                    alert(2);
                                                    oEv.cancelBubble=true;
                                        }
                                        oBox3.onclick=function(ev){
                                                    var oEv=ev||event;
                                                    alert(3);
                                                    oEv.cancelBubble=true;
                                        }
                                        
                                    }

按钮开关及冒泡:
                window.onload=function(){
                                var oHd=document.getElementById("hd");//上面的按钮
                                var oUl=document.getElementById("list");//下面的列表
                                var aLi=document.getElementsByTagName(‘li‘);
                                var bOK=true; //给一个开关,现在的状态是开启的
                                oHd.onclick=function(ev){
                                                var oEv=ev||event;
                                                oEv.cancelBubble=true;
                                                if(bOK){oUl.style.display=‘block‘;}  //点击第一次显示
                                                else{oUl.style.display=‘none‘;}//再次点击隐藏
                                                bOK=!bOK;   //点击一次取反            
                                }
                                for(var i=0;i<aLi.length;i++){
                                        aLi[i].onclick=function(){
                                                oHd.innerHTML=this.innerHTML;
                                                bOK=true;   //让下一次的h3点击,ul显示
                                                //oUl.style.display=‘none‘;//点击冒泡到document上
                                        }
                                }
                                document.onclick=function(){
                                                oHd.innerHTML=‘请选择‘;
                                                oUl.style.display=‘none‘;
                                                bOK=true;//让下一次的h3点击,ul显示
                                }
                            }

时间: 2024-08-29 13:01:45

事件对象、事件冒泡、事件捕获的相关文章

简单总结焦点事件、Event事件对象、冒泡事件

每学习一些新的东西,要学会复习,总结和记录. 今天来简单总结一下学到的几个事件:焦点事件.Event事件对象.冒泡事件 其实这几个事件应该往深的说是挺难的,但今天主要是以一个小菜的角度去尝试理解一些基本的知识点. 1.焦点事件: 1.1概念理解: 想象场景:当一堆text文本框出现在面前,当点击其中一个文本框,它就会响应用户,并出现光标闪动(这时,点击令它获得焦点). 所以说:焦点事件是用来让浏览器区分哪一个对象是用户要进行操作(输入值.选择.跳转)的. 总结===>  浏览器(区分)哪一个对象

DOM2级事件对象、添加事件、阻止默认事件、阻止冒泡事件、获取事件对象目标的兼容处理

事件对象——兼容处理 1 /* 2 * 功能: 事件对象兼容 3 * 参数: 表示常规浏览器的事件对象e 4 */ 5 function getEvent(e) { 6 7 // 如果存在e存在,直接返回,否则返回window.event 8 return e || window.event; 9 } 获取事件所对应的目标——兼容处理 1 /* 2 3 * 功能: 获取事件所对应的目标 4 5 * 参数: 表示常规浏览器的事件对象e 6 7 */ 8 9 function getTargetBy

&lt;jQuery&gt; &lt;方法&gt; 十八. 移除事件, 触发事件, 事件对象(阻止冒泡, 阻止跳转)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>RayLee</p> <p>RayLee</p> <p>RayLee</p> <input

JS中的事件(对象,冒泡,委托,绑定)

- 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间,JS与HTML之间的交互是通过事件实现的 对于web应用来说,有下面这些代表性事件:点击事件,鼠标移动,按下键盘等等 - 事件,是用户和浏览器之间的交互行为 我们可以在事件对应的属性中设置一些js代码,当事件被触发时,这些代码会执行 文档的加载: 浏览器在加载一个页面时,是按照自上而下的顺序加载的, 读取到一行就运行一行,在代码执行时,页面还没有加载 将js代码编写到页面的下面,确保页面加载完毕以后再执行js代码 window.onload

React 事件对象、键盘事件、表单事件、ref获取dom节点、react实现类似Vue双向数据绑定

1.案例实现代码 import React, { Component } from 'react'; /** * 事件对象.键盘事件.表单事件.ref获取dom节点.react实现类似Vue双向数据绑定 * 事件对象: 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象包含着所有与事件有关的信息 * 表单事件: 获取表单的值 * 1.监听表单的改变事件 ---onChange * 2.在改变的事件里面获取表单输入的值 ---event * 3.把表单输入的值赋值给username

整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流.都是流的一种生动体现.用术语说流是对输入输出设备的抽象.以程序的角度说,流是具有方向的数据. 事件流分事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其

js事件流机制冒泡和捕获

JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 事件流 从页面中接收事件的顺序称为事件流. IE --> 事件冒泡流 Netscape --> 事件捕获流 查看源码:DOM2事件-捕获-冒泡 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档). 我们先来个简单的例子,这是HTML结构 <!DOCTYP

JavaScript 详说事件机制之冒泡、捕获、传播、委托

DOM事件流(event  flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(dubbed  bubbling):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件. 事件冒泡(event  capturing):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点. 无论是事件捕获还是事件冒泡,它们都有一个共同的行为,就是事

vue教程1-05 事件 简写、事件对象、冒泡、默认行为、键盘事件

v-on:click/mouseover...... 简写的: @click="" 推荐 事件对象: @click="show($event)" 事件冒泡: 阻止冒泡: a). ev.cancelBubble=true; b). @click.stop 推荐 默认行为(默认事件): 阻止默认行为: a). ev.preventDefault(); b). @contextmenu.prevent 推荐 键盘: @keydown $event ev.keyCode @

事件流,冒泡,捕获,事件委托

js里怎么去监听一个事件? 网页中每一个元素都有可以产生某些触发JavaScript函数的事件,事件是可以被JavaScript侦测到的一种行为 监听方法的参数分别代表什么意思?其中哪些参数关系到js的事件流机制?js事件流机制有哪些工作?工作原理是什么? 第一个参数是,事件类型,例如onclick 第二个参数是,响应的时候所执行的函数 第三个是事件流问题,侦听的三个阶段,捕获阶段 --- 目标阶段 --- 冒泡阶段 此处的参数确定侦听器是运行于捕获,目标还是冒泡 如果将useCapture设置