`

利用DOM的事件处理和冒泡机制模拟页面锁定功能

阅读更多
废话不多说,先贴代码:

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
	
<script type="text/javascript" >

	var open = "开启夜服";
	var cancel = "取消夜服";
	
	// 事件是否继续执行的标识
	var eventableflag = true;
	document.addEventListener("click", stopClick, true);
	
	function stopClick(e){
		e = window.event || e;
		var target = e.target;
		
		// 开启、关闭夜服的按钮
		if(target.id == "btn4")
		{
			if(target.innerHTML == open)
			{
				target.innerHTML = cancel;
				eventableflag = false;
				
			}
			else
			{
				target.innerHTML = open;
				eventableflag = true;
			}			
		}
		// 判断标识,决定是否让事件继续向上冒泡
		if(!eventableflag)
		{
			e.returnValue = false;
			
			// 阻止将来事件的冒泡
			e.stopPropagation();
			return false;
		}
		else
		{
			return true;
		}
	}
</script>
</head>

<button class="button1" id="btn1">弹出消息1</button>
<button id="btn2">弹出消息2</button>
<button id="btn3">弹出消息3</button>
<button id="btn4">开启夜服</button>

<script type="text/javascript" >

	var btn1 = document.getElementById("btn1");
	btn1.onclick = function(){
		alert("click button 1");
	}
	
	var btn2 = document.getElementById("btn2");
	btn2.onclick = function(){
		alert("click button 2");
	}
	
	var btn3 = document.getElementById("btn3");
	btn3.onclick = function(){
		alert("click button 3");
	}
</script>
</html>



效果:

没有开启服务时,一切正常


开启了服务时,让其它元素点击无效



当然这个只是实现了DOM的机制,没有考虑IE浏览器。 另外,这里只实现了简单的button,还有其它的如a链接等元素没有考虑,但都可以通过e.target.nodeName 或者 e.target.localName来识别
  • 大小: 20 KB
  • 大小: 13.8 KB
分享到:
评论

相关推荐

    DOM事件(ppt) DOM事件(ppt) DOM事件(ppt)

    DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM事件(ppt)DOM...

    DOM事件流,冒泡 | 捕获 | 委托 ,详解

    目录(一)DOM事件流① 定义② 图解③ 历史(二)冒泡(三)捕获(四)在不同的阶段执行事件(五)提高内存和性能 — 事件委托① 实例② 优点 (一)DOM事件流 ① 定义 DOM事件流包括三个阶段: 捕获阶段 目标阶段 ...

    JavaScript之DOM事件(源代码)

    JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源代码)JavaScript之DOM事件(源...

    【JavaScript源代码】JavaScript中事件冒泡机制示例详析.docx

    JavaScript中事件冒泡机制示例详析  DOM事件流(event flow )存在三个阶段:事件捕获阶段、 处于目标阶段、 事件冒泡阶段。 事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,...

    Html dom _BOM 模型 _事件处理机制 _面向对象基础

    Html dom _BOM 模型 _事件处理机制 _面向对象基础;

    DOM事件总结(教辅)

    DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件总结(教辅)DOM事件...

    DOM事件总结,前端学习

    HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮)。 提示: 在 W3C 2 级 DOM 事件中规范了事件模型。

    jQuery 选择器 操作DOM 事件处理 动画基础

    jQuery选择器 jQuery操作DOM jQuery事件处理 jQuery动画基础

    JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题.docx

    JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题.docx

    javascript 中事件冒泡和事件捕获机制的详解

    javascript 中事件冒泡和事件捕获机制的详解 二者作用:描述事件触发时序问题 事件捕获:从document到触发事件的那个节点,即自上而下的去触发事件—由外到内 事件冒泡:自下而上的去触发事件—由内到外 绑定事件...

    js 给动态生成的DOM绑定事件

    web前端的朋友们,经常会遇到给由后台返回的数据遍历生成的DOM绑定事件,但是总是绑定不上,那是因为把事件直接绑定到了动态生成的DOM上了,正确的方式是利用事件冒泡给其父元素绑定,这样才能解决问题的哦!

    【JavaScript源代码】javascript事件冒泡,事件捕获和事件委托详解.docx

    javascript事件冒泡,事件捕获和事件委托详解  1、事件冒泡:在javascript事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止。并不是所有的...

    DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)

    DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的...和许多Web技术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们,下面介绍DOM事件阶段以及事件捕获与事件冒泡先后执行顺序

    DOM事件处理函数、DOM0,DOM2的优缺点

    目录(一)定义(二)HTML事件处理函数① 特点② 缺点(三)DOM0级事件处理函数① 使用② 删除③ 缺点(四)DOM2级事件处理函数① 使用② 删除③ 注意 (一)定义 事件就是用户或者浏览器自身执行的某种行为,例如...

    深入理解JS DOM事件机制

    2、事件冒泡IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。3、事件捕获事件捕获的思想是不太具体的节点...

    js代码-this的指向(模拟7):DOM事件处理函数的形式

    js代码-this的指向(模拟7):DOM事件处理函数的形式

    js中的DOM模拟购物车功能.docx

    js中的DOM模拟购物车功能.docx

    利用DOM设置背景图

    a)在页面设置元素,并使用document.querySelector ("div"),获取div元素。 b)给元素添加onclick ()单击事件。 c)处理onclick函数逻辑 d)通过style属性修改元素的背景色和宽度;

    Spring-IOC手动模拟实现-利用dom4解析xml文件

    /*模拟spring的实现 * 1.通过构造器获取配置文件 * 2.通过dom4j解析配置文件,得到list集合(存放Bean标签的id和class属性) * 3.通过反射实例化得到对应的实例化对象,放置在map中(map是键值对,可根据id获取值)...

    这次一定彻底弄懂DOM事件机制

    下文主要通过一个例子带你 分析DOM事件的传递、事件处理 ,然后在此基础上再 深入总结对事件监听的优化方案 ,最终总结下DOM事件机制 在开源框架中的实战应用 。 一、从实例看事件传递 以下面这个普通的html...

Global site tag (gtag.js) - Google Analytics