`
zx_00
  • 浏览: 6029 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
阅读更多

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程序设计——事件处理实验报告.docx

    实验报告详细介绍了JavaScript事件处理的相关知识,这在Web开发中是非常关键的一部分,因为事件是用户与网页交互的主要方式。以下是对各个知识点的详细说明: 1. **JavaScript事件基本概念**: - **事件**:是用户...

    使用JavaScript事件综合查询,js事件大全

    JavaScript事件是浏览器或Node.js环境中发生的特定行为,如用户点击按钮、页面加载完成或输入框获得焦点等。事件驱动编程是JavaScript的核心特性之一,通过监听和处理这些事件,我们可以创建响应式的用户体验。 二...

    第3章+JavaScript事件处理.pdf

    ### JavaScript事件处理详解 #### 一、事件与事件处理概览 在JavaScript编程中,**事件**被视为用户与网页互动的桥梁,它们涵盖了从简单的鼠标移动到复杂的拖拽操作等一系列行为。事件处理则是指通过JavaScript...

    事件集合js事件集合js事件集合

    JavaScript(简称JS)...总的来说,JavaScript事件集合是构建动态和交互式网页的核心工具。通过深入理解和熟练应用事件监听、事件处理、事件冒泡、事件捕获等概念,开发者能够创建出更加丰富、响应迅速的Web应用程序。

    EventDispatcher,js事件派发器,javascript事件派发器

    在标题提到的"EventDispatcher, js事件派发器, javascript事件派发器"中,我们可以理解这是一个JavaScript实现的事件派发器,可能是作者的原创工作。用户可以通过GitHub上的问题跟踪系统(Issue)报告任何发现的错误...

    js单击事件和双击事件并存绑定

    在JavaScript编程中,事件处理是页面交互的核心部分。"js单击事件和双击事件并存绑定"这个主题涉及到如何让一个元素同时响应单击(click)和双击(dblclick)事件,而不互相冲突。这在实现某些交互功能时非常有用,...

    javascript事件详解

    本文将详细介绍JavaScript事件,包括异步事件处理、事件阶段以及事件对象。 1. 异步事件处理 JavaScript不支持多线程处理,而是采用异步事件模型。这意味着当一个任务在执行时,如果有其他任务需要等待,JavaScript...

    js事件设计

    JavaScript事件设计是Web开发中的核心概念,它使得用户...总结,JavaScript事件设计是构建动态Web应用的基础,理解并熟练运用事件模型、事件处理、事件流以及相关技巧,能够帮助开发者创建出更加互动和用户友好的网页。

    JavaScript程序设计课件:第 5 章 事件和事件处理.ppt

    在JavaScript编程中,事件和事件处理是至关重要的概念,它们构成了用户与网页交互的基础。本章将深入探讨事件的定义、事件类型、事件处理器以及如何在JavaScript中处理事件。 5.1 理解事件 事件是用户或系统在特定...

    javascript事件模型

    ECMAScript规范中的ECMA-357是与事件处理相关的一部分,它提供了JavaScript中处理事件的标准。 事件流是JavaScript事件模型的核心部分,描述了事件如何在DOM(Document Object Model)层次结构中传递。主要有两种...

    js事件模型

    JavaScript事件模型是JavaScript编程中非常重要的一个概念,它涉及到网页交互和用户操作的响应机制。在JavaScript中,事件是用户或浏览器对网页进行某种操作时触发的特定行为,例如点击按钮、滚动页面等。理解并掌握...

    JavaScript 事件流、事件处理程序及事件对象总结

    在事件处理函数中,JavaScript会传递一个事件对象(event),它包含了有关事件的详细信息,如事件类型、事件目标等。事件对象的使用让我们能够访问事件的属性,执行一些基于事件的操作。例如,可以使用event....

    js事件触发大全

    JS事件触发大全是指在 JavaScript 中各种事件的触发机制,这些事件可以在不同的元素上触发,例如按钮、链接、文本框、图片等。这些事件可以被 JavaScript 代码捕捉和处理,以便执行特定的操作。 事件类型 1. 鼠标...

    javascript事件综合查询

    本篇将深入探讨JavaScript事件综合查询的相关知识点。 一、事件模型 1. DOM(Document Object Model)事件模型:这是最早的事件处理方式,通过`element.addEventListener`和`element.removeEventListener`方法添加...

    JavaScript事件学习小结(一)事件流

    标题中的"JavaScript事件学习小结(一)事件流"指的是JavaScript中的事件处理机制,特别是事件流的概念。事件流描述了在DOM(文档对象模型)中事件如何从根节点传播到具体的元素节点。在JavaScript中,事件是用户与...

    javascript 事件

    JavaScript事件是Web开发中不可或缺的一部分,它允许用户与网页进行交互并响应用户的操作。...在阅读`event.js`这个文件和相关的博客文章后,你将能够深入理解JavaScript事件系统,并将其应用到自己的项目中。

    JavaScript触发事件列表

    JavaScript是一种广泛应用于Web开发的编程语言,它提供了许多事件处理机制,以便开发者能够捕捉和响应用户交互操作。下面是JavaScript触发事件列表,涵盖了常见的事件类型和应用场景: 单击事件(OnClick) 单击...

    js的各种事件,方便使用

    JavaScript(简称JS)是一种广泛用于网页和网络应用的脚本语言,主要负责处理客户端的交互逻辑。在网页开发中,事件扮演着至关重要的角色,它们允许用户与页面进行互动,如点击按钮、提交表单等。本文将详细介绍...

    js事件机制 .pdf

    #### 二、JavaScript事件处理机制 ##### 1. 事件流与事件传播 JavaScript中事件的处理主要涉及到事件流的概念。事件流描述了从页面中接收事件的顺序。主要有两种模型:**冒泡模型**和**捕获模型**。 - **冒泡模型...

    js 前端鼠标拖动事件实例

    这个实例主要涉及的关键词是“js”(JavaScript)、“ASP”(尽管在这个上下文中并不直接相关,但可能是用户提及的一个相关技术栈)、“web”(Web开发)以及“鼠标事件”。我们将重点讲解JavaScript中的鼠标拖动...

Global site tag (gtag.js) - Google Analytics