js的事件模型是事件流模型,即意味着页面上不止一个元素响应相同的事件,当我们点击页面上的按钮时,实际上是点击了按钮,以及按钮的容器------整个页面。
对于IE,使用的是事件冒泡技术。其意思是从最内部点击的元素开始,向上触发到最外部(document 对象)。
而对于Netscape来说,使用称为事件捕获的解决方案。
如:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="button" style="font-size: 18px" value="PLESE PUSH ME" onclick="c()"/>
</body>
</html>
事件冒泡 触发路径为:input->body->document
到了IE3.0, HTML元素也可以接收冒泡事件。触发路径为:input->body->html->document
Mozilla浏览器支持html元素上的事件。但是,事件也可以上升到不是DOM的一部分的windows对象。
触发路径为:input->body->html->document->window
事件捕获
Netscape 触发路径为:document->body->input
DOM事件流
DOM同时支持事件的捕获和事件的冒泡, 但是事件捕获先发生。
触发路径:windows->document->body->input->body->document->windows
DOM事件有一个特色是,文本节点也可以触发事件(IE不行)。
事件处理:包括两个方面:传统事件处理和现代事件处理
传统事件处理:1、所有浏览器都支持 。2、只会执行最后的绑定事件,即执行单一事件
(1)js中指定事件处理
匿名函数指定事件
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME"/>
<script>
var obtn = document.getElementById("mybtn");
obtn.onclick = function(){
alert("====");
}
</script>
已有函数名
<script>
function showmsg(){
alert("-_-!!");
}
</script>
<body>
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME"/>
<script>
var obtn = document.getElementById("mybtn");
obtn.onclick = showmsg;
</script>
</body>
注意:1、绑定事件处理程序到事件属性时,只能引用函数的名称,后面不能加括号。加括号意味着马上执行函数,不用通过点击事件。
2、不论函数的定义是怎样的,必须确保在XHTML元素被添加到DOM之前,登记事件处理程序,否则,将因为一个不存在的对象而得到一个错误。即最好不要将事件处理程序写在HTML标签后。
(2)XHTML标记中处理事件
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" onclick="alert('-_-!!');"/>
注意:在传统事件处理中不可书写多个相同的事件,事件处理会覆盖,只执行最后绑定的事件:
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" onclick="alert('-_-!!');"/>
<script>
var obtn = document.getElementById("mybtn");
obtn.onclick = function(){
alert("0_-!!");
}
</script>
运行结果只会执行最后绑定的第二个。这就是单一事件处理。
现代事件处理程序
1、兼容性不是很好。2、可以为每个事件指派多个事件处理。
(1)IE中
[object].attachEvent("事件处理程序的名称", 函数); // 添加事件处理程序
[object].detachEvent("事件处理程序的名称", 函数); // 删除事件处理程序
如:
<script>
function showmsg(){
alert("-_-!!");
}
function showmsg2(){
alert("0_-!!");
}
</script>
<body>
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" />
<script>
var obtn = document.getElementById("mybtn");
obtn.attachEvent("onclick", showmsg);
obtn.attachEvent("onclick", showmsg2);
</script>
</body>
(2)DOM
[object].addEventListener("事件处理程序的名称", 函数, bCapture); // 添加事件处理程序
[object].removeEventListener("事件处理程序的名称", 函数, bCapture); // 删除事件处理程序
第三个参数是指程序是否用在冒泡或捕获阶段。
<script>
function showmsg(){
alert("-_-!!");
}
function showmsg2(){
alert("0_-!!");
}
</script>
<body>
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" />
<script>
var obtn = document.getElementById("mybtn");
obtn.addEventListener("click", showmsg,false);
obtn.addEventListener("click", showmsg2,false);
</script>
</body>
用传统方式直接将函数指派给事件处理程序,那么事件处理程序就是在冒泡阶段添加的。
obtn.onclick = showmsg;
==
obtn.addEventListener("click", showmsg,false);
事件处理的返回值
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" onclick="return confirm('are you sure?')"/>
只有使用return语句了才会返回一个值
如果是这样:那么confirm的值是不会返回给浏览器的。
<input id="mybtn" type="button" style="font-size: 18px" value="PLESE CLICK ME" onclick="confirm('are you sure?')"/>
相关推荐
实验报告详细介绍了JavaScript事件处理的相关知识,这在Web开发中是非常关键的一部分,因为事件是用户与网页交互的主要方式。以下是对各个知识点的详细说明: 1. **JavaScript事件基本概念**: - **事件**:是用户...
JavaScript事件是浏览器或Node.js环境中发生的特定行为,如用户点击按钮、页面加载完成或输入框获得焦点等。事件驱动编程是JavaScript的核心特性之一,通过监听和处理这些事件,我们可以创建响应式的用户体验。 二...
### JavaScript事件处理详解 #### 一、事件与事件处理概览 在JavaScript编程中,**事件**被视为用户与网页互动的桥梁,它们涵盖了从简单的鼠标移动到复杂的拖拽操作等一系列行为。事件处理则是指通过JavaScript...
JavaScript(简称JS)...总的来说,JavaScript事件集合是构建动态和交互式网页的核心工具。通过深入理解和熟练应用事件监听、事件处理、事件冒泡、事件捕获等概念,开发者能够创建出更加丰富、响应迅速的Web应用程序。
在标题提到的"EventDispatcher, js事件派发器, javascript事件派发器"中,我们可以理解这是一个JavaScript实现的事件派发器,可能是作者的原创工作。用户可以通过GitHub上的问题跟踪系统(Issue)报告任何发现的错误...
在JavaScript编程中,事件处理是页面交互的核心部分。"js单击事件和双击事件并存绑定"这个主题涉及到如何让一个元素同时响应单击(click)和双击(dblclick)事件,而不互相冲突。这在实现某些交互功能时非常有用,...
本文将详细介绍JavaScript事件,包括异步事件处理、事件阶段以及事件对象。 1. 异步事件处理 JavaScript不支持多线程处理,而是采用异步事件模型。这意味着当一个任务在执行时,如果有其他任务需要等待,JavaScript...
JavaScript事件设计是Web开发中的核心概念,它使得用户...总结,JavaScript事件设计是构建动态Web应用的基础,理解并熟练运用事件模型、事件处理、事件流以及相关技巧,能够帮助开发者创建出更加互动和用户友好的网页。
在JavaScript编程中,事件和事件处理是至关重要的概念,它们构成了用户与网页交互的基础。本章将深入探讨事件的定义、事件类型、事件处理器以及如何在JavaScript中处理事件。 5.1 理解事件 事件是用户或系统在特定...
ECMAScript规范中的ECMA-357是与事件处理相关的一部分,它提供了JavaScript中处理事件的标准。 事件流是JavaScript事件模型的核心部分,描述了事件如何在DOM(Document Object Model)层次结构中传递。主要有两种...
JavaScript事件模型是JavaScript编程中非常重要的一个概念,它涉及到网页交互和用户操作的响应机制。在JavaScript中,事件是用户或浏览器对网页进行某种操作时触发的特定行为,例如点击按钮、滚动页面等。理解并掌握...
在事件处理函数中,JavaScript会传递一个事件对象(event),它包含了有关事件的详细信息,如事件类型、事件目标等。事件对象的使用让我们能够访问事件的属性,执行一些基于事件的操作。例如,可以使用event....
JS事件触发大全是指在 JavaScript 中各种事件的触发机制,这些事件可以在不同的元素上触发,例如按钮、链接、文本框、图片等。这些事件可以被 JavaScript 代码捕捉和处理,以便执行特定的操作。 事件类型 1. 鼠标...
本篇将深入探讨JavaScript事件综合查询的相关知识点。 一、事件模型 1. DOM(Document Object Model)事件模型:这是最早的事件处理方式,通过`element.addEventListener`和`element.removeEventListener`方法添加...
标题中的"JavaScript事件学习小结(一)事件流"指的是JavaScript中的事件处理机制,特别是事件流的概念。事件流描述了在DOM(文档对象模型)中事件如何从根节点传播到具体的元素节点。在JavaScript中,事件是用户与...
JavaScript事件是Web开发中不可或缺的一部分,它允许用户与网页进行交互并响应用户的操作。...在阅读`event.js`这个文件和相关的博客文章后,你将能够深入理解JavaScript事件系统,并将其应用到自己的项目中。
JavaScript是一种广泛应用于Web开发的编程语言,它提供了许多事件处理机制,以便开发者能够捕捉和响应用户交互操作。下面是JavaScript触发事件列表,涵盖了常见的事件类型和应用场景: 单击事件(OnClick) 单击...
JavaScript(简称JS)是一种广泛用于网页和网络应用的脚本语言,主要负责处理客户端的交互逻辑。在网页开发中,事件扮演着至关重要的角色,它们允许用户与页面进行互动,如点击按钮、提交表单等。本文将详细介绍...
#### 二、JavaScript事件处理机制 ##### 1. 事件流与事件传播 JavaScript中事件的处理主要涉及到事件流的概念。事件流描述了从页面中接收事件的顺序。主要有两种模型:**冒泡模型**和**捕获模型**。 - **冒泡模型...
这个实例主要涉及的关键词是“js”(JavaScript)、“ASP”(尽管在这个上下文中并不直接相关,但可能是用户提及的一个相关技术栈)、“web”(Web开发)以及“鼠标事件”。我们将重点讲解JavaScript中的鼠标拖动...