`
ava_chc2000
  • 浏览: 77723 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript事件:Event对象

    博客分类:
  • js
 
阅读更多

Javascript中,event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作。

 

一、event对象的主要属性和方法:  
1.type:事件的类型,就是HTML标签属性中没有“on”前缀之后的字符串,例如“Click”就代表单击事件。
2.srcElement:事件源,就是发生事件的元素。比如<a ></a> a这个链接是事件发生的源头(非IE中用target)
3.button:被按下的鼠标键,0代表没有按键,1代表左键,2代表右键,4代表中间键。按下了多个鼠标键,把这些值叠加。
4.clientX/clientY:事件发生时,鼠标相对于包容窗口的左上角的横、纵坐标。整数值。IE考虑窗口的滚动,所以要想得到事件发生的坐标相对于文档开头的位置,要加上document.body.scrollLeft和document.body.scrollTop。        
5.offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。
6.altKey,ctrlKey,shiftKey:指鼠标事件发生时是否同时按住了Alt、Ctrl或者Shift键。布尔值。
7.keyCode:keydown和keyup事件发生时按键的代码以及keypress事件的Unicode字符。比如event.keyCode=13代表按下了回车键;
8.fromElement、toElement:前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。
9.cancelBubble:布尔值,true代表不被上层元素的事件控制,false代表允许被上层元素的事件控制。
10.returnValue:布尔值,false代表阻止浏览器执行默认的事件动作。
11.addEventListener()和removeEventListener("事件类型",对应的方法,boolen):非IE中的监听程序。
12.attachEvent()和detachEvent("事件类型",对应的方法)方法:IE中的监听程序。
注意:在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。

 

二、IE的Event对象:是一个全局属性。在IE中,不能把Event对象作为参数传递给事件处理程序,只能用window.event或者event来引用Event对象。因为在IE中,Event是window的一个属性,也就是说event是一个全局变量。
IE中事件的起泡:IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如,<div>标签包含了<a>,如果这两个标签都有 onclick事件的处理函数,那么执行的情况就是先执行<a>标签的onclick事件处理函数,再执行<div>的事件处理函数。如果希望<a>的事件处理函数执行完毕之后,不希望执行上层的<div>的onclick的事件处理函数了,那么就把 cancelBubble设置为false即可。

 

三、W3C DOM标准中的Event:W3C DOM中的Event对象并不是window全局对象下面的属性,换句话说,event不是全局变量。通常在DOM二级标准中,event作为发生事件的文档对象的属性。Event含有两个子接口,分别是UIEvent和MutationEvent,这两个子接口实现了Event的所有方法和属性,而MouseEvent接口又是UIEvent的子接口,所以实现了UIEvent和Event的所有方法和属性。

1.Event
   type:事件类型,和IE类似,但是没有“on”前缀,例如单击事件只是“click”。
   target:发生事件的节点。
   currentTarget:发生当前正在处理的事件的节点,可能是Target属性所指向的节点,也可能由于捕捉或者起泡,指向Target所指节点的父节点。
   eventPhase:指定了事件传播的阶段。是一个数字。
   timeStamp:事件发生的时间。
   bubbles:指明该事件是否起泡。
   cancelable:指明该事件是否可以用preventDefault()方法来取消默认的动作。
   preventDefault()方法:取消事件的默认动作;
   stopPropagation()方法:停止事件传播。
2.UIEvent
   view:发生事件的window对象。
   detail:提供事件的额外信息,对于单击事件、mousedown和mouseup事件都代表的是点击次数。
3.MouseEvent
   button:鼠标键的状态,0代表左键,1代表中间键,2代表右键(和IE中的button属性代表的意义不一样)   altKey、ctrlKey、shiftKey、metaKey:和IE相同,但是IE没有最后一个。
     clientX、clientY:和IE相同,但DOM标准中不考虑文档的滚动情况,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是0
   screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要。
   relatedTarget:和IE中的fromElement、toElement类似,除了对于mouseover和mouseout有意义外,其他的事件没什么意义。

 

四、代码示例(IE浏览器):添加监听程序,通过event对象捕捉鼠标点击时的坐标

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>

<!--页面加载时添加监听程序,页面卸载时移除监听程序-->
<body id="mybody" onload="attachEvent('onmousedown',getXY)" onunload="detachEvent('onmousedown',getXY)">
    <!--用此文本框模拟一幅地图-->    
    <textarea id="map" style="width: 594px; height: 239px" rows="10" cols="10"></textarea> 
 <table style="width: 257px; height: 161px">            
     <tr>
                <td colspan="2">第一点:</td>
            </tr>
            <tr>
                <td>X坐标值:</td>
                <td>
                    <input type="text" id="x1Position" tabindex="1" onfocus="focusPosition=1"/>
                </td>
            </tr>
            <tr>
                <td>Y坐标值:</td>
                <td>
                    <input type="text" id="y1Position" tabindex="2" onfocus="focusPosition=1"/>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="height: 14px">第二点:</td>
            </tr>
            <tr>
                <td>X坐标值:</td>
                <td>
                    <input type="text" id="x2Position" tabindex="3" onfocus="focusPosition=2"/>
                </td>
            </tr>
            <tr>
                <td style="height: 26px">Y坐标值:</td>
                <td style="height: 26px">
                    <input type="text" id="y2Position" tabindex="4" onfocus="focusPosition=2"/>
                </td>
            </tr>
 </table>
</body>
</html>

<script type="text/javascript">
    document.getElementById("map").onmousedown=getXY;  //指明event对象要监控的对象.必须指明该对象,否则下面的e=window.event会为null
    var focusPosition=1;                          //全局变量,焦点标志位
    
    ///捕捉鼠标左键按下时的屏幕坐标,自动填入坐标文本框中.并通过焦点变换实现两个坐标点轮换填入
    function getXY()
    {
        var e=window.event;
        if((e.button<2)&&(e.type=='mousedown'))   //鼠标左键按下时发生
        {
          if(1==focusPosition)
            {
                document.getElementById('x1Position').value=e.clientX;
                document.getElementById('y1Position').value=e.clientY;
                document.getElementById('x2Position').focus();
                focusPosition+=1;
            }
            else if(2==focusPosition)
            {
                document.getElementById('x2Position').value=e.clientX;
                document.getElementById('y2Position').value=e.clientY;
                document.getElementById('x1Position').focus();
                focusPosition-=1;
            }
        }
    }
</script>

 

分享到:
评论

相关推荐

    《javascript》——event对象与事件

    Event 对象的使用可以分为两个方面:事件处理和事件绑定。事件处理是指在事件发生时执行的函数或代码,而事件绑定是指将事件处理函数绑定到某个元素上,使得该元素能够响应用户的交互行为。 常见的事件类型包括: ...

    Javascript中的事件--Event对象

    - **`timeStamp`**:事件发生的时间戳。 - **`bubbles`**:布尔值,表示该事件是否可以冒泡。 - **`cancelable`**:布尔值,表示该事件是否可以通过`preventDefault()`方法取消默认行为。 ### 2. 控制事件流程的...

    2.01 JavaScript基础事件以及Event对象(原生态).pdf

    JavaScript 基础事件与 Event 对象 本文将详细介绍 JavaScript 中的基础事件和 Event 对象,包括事件的定义、EventTarget 接收事件接口、addEventListener、removeEventListener、dispatchEvent 方法 serta ...

    Javascript之event大全

    _event 对象是 JavaScript 中的一个重要概念,它代表事件的状态,例如触发 event 对象的元素、鼠标的位置及状态、按下的键等等。event 对象只在事件发生的过程中才有效。event 的某些属性只对特定的事件有意义。例如...

    javascript之Event详解[定义].pdf

    Event对象是JavaScript中一个非常重要的概念,它代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。Event对象只在事件发生的过程中才有效。Event的某些属性只对特定的事件有意义。 1. ...

    window对象--event对象详解

    Event对象则是JavaScript事件处理中的核心,它包含了与特定事件相关的所有信息,如事件类型、事件目标等。 在深入讲解Window对象和Event对象之前,我们先了解一些基础概念。JavaScript是一种基于原型的动态类型语言...

    javascript Event对象详解

    JavaScript中的Event对象是事件处理的核心部分,它包含了与事件相关的所有信息,如事件类型、触发事件的元素、鼠标和键盘的状态等。以下是对Event对象及其重要属性的详细解释: 1. **altKey**:这个属性用于检查...

    JavaScript事件对象event用法分析

    本文实例讲述了JavaScript事件对象event用法。分享给大家供大家参考,具体如下: 前面的文章已经介绍了JavaScript为事件指定处理程序的五种方式。 下面继续介绍JavaScript的事件对象event。 事件对象event包含导致...

    window.event 对象详解

    在JavaScript编程语言中,`window.event`对象是一个特殊对象,它与浏览器的事件处理机制紧密相关。这个对象在大部分浏览器环境中(尤其是老版本的IE)是全局可用的,提供了当前事件的相关信息。本文将深入探讨`...

    JavaScript事件对象深入详解

    在DOM0级和DOM2级的事件处理中,我们可以像下面这样访问事件对象: ```javascript var btn = document.getElementById("myBtn"); btn.onclick = function(event) { console.log(event.type); // 输出:"click" }; ...

    javascriptEvent对象详解定义.pdf

    在 JavaScript 中,Event 对象是事件状态的代表,它包含了事件发生的元素、键盘状态、鼠标位置和鼠标按钮状态等信息。一旦事件发生,浏览器的内存中就会生成相应的 Event 对象,如单击一个按钮。Event 对象只在事件...

    event对象总结,更详细更全面

    例如,可以使用以下代码来获取事件对象: ```javascript evt = (evt)? evt : ((window.event)? window.event : null); ``` 该代码可以在不同的浏览器中获取事件对象。 事件处理的best practice 在处理事件时,需要...

    JavaScript 事件对象介绍

    JavaScript事件对象是JavaScript编程中的一个重要概念,它在事件处理中扮演着核心的角色。事件对象主要用于提供事件的上下文信息,允许开发者在事件处理函数中获取事件相关的详细信息,如事件类型、触发事件的元素、...

    《前端异步编程系列之事件发布/订阅模式》附件:eventjs模块

    事件发布/订阅模式(也称为发布/订阅者模式或观察者模式)是一种设计模式,它允许对象之间的解耦。在这种模式中,我们有三个主要角色:发布者、订阅者和事件中心(也称事件总线)。发布者负责触发事件,订阅者注册...

    JavaScript程序设计——事件处理实验报告.docx

    - **Event对象**:事件处理函数中通常会传递一个Event对象,包含了关于事件的信息,如事件类型、位置等。 - **键盘事件**:如`onkeydown`(键按下)、`onkeyup`(键释放)和`onkeypress`(字符键按下)。 - **...

    javascript事件列表解说

    首先,JavaScript事件分为两类:浏览器事件和DOM(文档对象模型)事件。浏览器事件主要与用户的交互有关,如点击、滚动、提交表单等;DOM事件则关注于文档对象的状态改变,例如元素的加载、改变或删除。 1. 鼠标...

    javascript中event详解

    在JavaScript中,`event`对象是浏览器提供的一个标准对象,用于表示用户与网页交互时发生的各种事件的状态。这些事件包括但不限于用户点击、移动鼠标、按下键盘等操作。`event`对象包含了关于事件的所有相关信息,...

    09JavaScript事件总结.docx

    以下代码展示了如何获取并使用事件对象: ```javascript var X = event.screenX; var Y = event.screenY; txt.innerHTML = "X=" + X + " Y" + Y; ``` 四、事件冒泡(Bubble) 事件冒泡是指事件从最内层元素向上层...

Global site tag (gtag.js) - Google Analytics