废话不多说,先贴代码:
<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中各种对象的属性和方法的使用,BOM模型的核心对象window及其常用方法,JavaScript中的事件处理机制,包括事件是如何产生的、事件对象的特性以及事件冒泡现象,以及面向对象编程的基础知识,...
在JavaScript编程中,事件处理是不可或缺的一部分,尤其是事件冒泡(Event Bubbling)机制,它是理解DOM(Document Object Model)事件处理的关键概念之一。事件冒泡是指事件开始时由最具体的元素(文档中嵌套层次...
通过以上分析,我们可以了解到jQuery事件系统的内部工作原理,包括如何阻止事件冒泡、如何触发事件以及处理特殊事件的方式。这对于理解和优化jQuery代码,以及在开发中更有效地使用事件处理具有重要意义。在实际应用...
要实现这个功能,我们需要理解JavaScript事件冒泡的概念。在DOM中,事件会从最深的节点开始向上层节点传播,直到到达文档的根节点,这个过程就称为事件冒泡。阻止事件冒泡可以避免一个事件被多次处理,提高性能,...
为了确保代码的健壮性和跨浏览器兼容性,开发者需要对各种浏览器的事件处理机制有深入的理解,包括DOM0级、DOM2级事件处理以及IE特有事件模型。同时,通过持续实践和测试,可以避免这些低级错误,提高代码质量。在...
在JavaScript的DOM编程中,事件冒泡是一个非常重要的概念,尤其在处理多级嵌套元素的事件时。事件冒泡是指事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上转播至最不具体的节点(文档...
在JavaScript和许多其他基于DOM(文档对象模型)的编程语言中,"事件冒泡"是一个重要的概念,尤其在处理用户交互时。事件冒泡是指事件从最深的节点开始,然后逐级向上传播到其父节点的过程。这个过程就像气泡在水中...
JavaScript中的事件冒泡机制是DOM事件处理的核心概念之一,它涉及到事件在DOM树中的传播方式。事件流主要有三种阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。 事件捕获阶段是从DOM树的根节点开始,沿着树向下...
目录(一)DOM事件流① 定义② 图解③ 历史(二)冒泡(三)捕获(四)在不同的阶段执行事件(五)提高内存和性能 — 事件委托① 实例② 优点 (一)DOM事件流 ① 定义 DOM事件流包括三个阶段: 捕获阶段 目标阶段 ...
DOM事件流包括三个阶段:事件捕获、目标阶段和事件冒泡。在捕获阶段,事件从最外层的元素(如HTML文档)向下传递到目标元素。然后,在目标阶段,事件真正发生在目标元素上。最后,事件冒泡阶段开始,事件从目标元素...
`index.html`可能包含一些DOM元素,而`visitor.js`则实现了上述的事件模型,并添加了一些实际的事件监听器和处理函数,以便于在页面上展示效果。 通过这样的自定义事件模型,开发者可以更好地理解和控制事件处理...
JavaScript中的事件冒泡是事件处理的一个重要概念,它是指事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上转播至最不具体的节点(文档)的过程。这个机制允许事件在事件流的每个阶段都...
事件委托是一种优化事件处理的技术,其核心思想是不直接为每个子元素绑定事件处理器,而是将事件处理器绑定到父元素上,利用事件冒泡机制来处理子元素的事件。这种方式可以减少事件处理器的数量,提高性能。 ```...
JavaScript事件冒泡是Web开发中的一个关键概念,它涉及到用户与网页交互时事件的传递机制。在浏览器环境中,事件冒泡是指事件从最深的节点开始,然后逐级向上层节点传播事件的过程。这个过程允许事件处理函数在不同...
3. DOM2级事件监听器:这是更现代且推荐的方法,通过`addEventListener`和`removeEventListener`方法添加和移除事件处理程序,可以处理多个事件并且可以控制事件冒泡。 ```javascript button.addEventListener('...
冒泡事件是指当一个事件在一个DOM元素上发生并被触发时,这个事件不仅仅会在该元素上触发,还会按照DOM结构逐级向上(从最深的节点开始)传递至根节点,这一过程称为“事件冒泡”。在冒泡过程中,每一个父级元素都按...
本文将探讨如何利用jQuery实现一个技巧,使得任何组件都能够支持类似于DOM事件的管理,包括事件派发、添加/删除监听器、事件冒泡和阻止默认行为。 首先,我们来看传统的发布-订阅模式。这种模式通常用于实现组件间...
它可能包含了实现上述功能的JavaScript代码,可能包括DOM遍历、事件处理、数据提取等逻辑。 总结来说,"谷歌获取网页DOM的插件"是一个强大的工具,可以帮助开发者和爬虫工程师深入理解和操作网页DOM,有效地抓取和...
事件冒泡和事件捕获是两种不同的事件处理机制,它们决定了事件如何在DOM(Document Object Model)层次结构中传播。了解这两者对于优化事件处理性能和编写高效代码至关重要。 事件冒泡是从最具体的节点(通常是DOM...