JavaScript的事件对象_概述/this

JavaScript 事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开发提供更多的强大功能。

最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,此外还可以修改一般事件的捕获/冒泡流的函数。

一、事件处理三部分组成

  对象.事件处理函数=函数。例如:单击文档任意处。

  click 表示一个事件类型,单击。

  onclick 表示一个事件处理函数或绑定对象的属性(或者叫事件监听器、侦听器)。

  document 表示一个绑定的对象,用于触发某个元素区域。

  function()匿名函数是被执行的函数,用于触发后执行。

<script type="text/javascript">
    window.onload = function(){
        document.onclick = function () {
            alert(‘Lee‘);
        };
    };
</script>

  除了用匿名函数的方法作为被执行的函数,也可以设置成独立的函数。

<script type="text/javascript">
    function box() {
        alert(‘Lee‘);
    }
    window.onload = function(){
        document.onclick = box;
    };
</script>

二、this 关键字和上下文

  在一个对象里,由于作用域的关系,this 代表着离它最近对象。

<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];
        input.onclick = function () {
            alert(this);             //HTMLInputElement,this 表示 input 对象
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>
<script type="text/javascript">
    function box(){
        alert(this);             //HTMLInputElement,this 表示 input 对象
    };
    box();                //[object Window]如果是在全局范围调用box()那么this代表window
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];
        input.onclick = box;
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>

三、事件对象(那么事件对象是什么?它在哪里呢?)

  当触发某个事件时,会产生一个事件对象,这个对象包含着所有与事件有关的信息。

  事件对象,我们一般称作为 event 对象,这个对象是浏览器通过函数把这个对象作为参数传递过来的。

  那么首先,我们就必须验证一下,在执行函数中没有传递参数,是否可以得到隐藏的参数。

<script type="text/javascript">
    function box(){
        alert(arguments.length); //0,没有得到任何传递的参数
    };
    box();                

</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>
<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];
        input.onclick = function(){
            alert(arguments[0]);            //[object MouseEvent]鼠标事件对象
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>

  上面这种做法比较累,那么比较简单的做法是,直接通过接收参数来得到即可

<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];
        input.onclick = function (evt) {         //接受 event 对象,名称不一定非要 event
            alert(evt); //MouseEvent,鼠标事件对象
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>

  直接接收 event 对象,是 W3C 的做法,IE 6,7,8不支持,IE 6,7,8自己定义了一个 event 对象,直接在 window.event 获取即可。

<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];
        input.onclick = function (evt) {
            var e = evt || window.event; //实现跨浏览器兼容获取 event 对象
            alert(e);
        };
    };
</script>
</head>
<body>
    <input  type="button" value="按钮"/>
</body>
时间: 2024-10-25 23:40:33

JavaScript的事件对象_概述/this的相关文章

JavaScript的事件对象_鼠标事件

鼠标事件是 Web 上面最常用的一类事件,毕竟鼠标还是最主要的定位设备.那么通过事件对象可以获取到鼠标按钮信息和屏幕坐标获取等. 一.鼠标按钮 只有在主鼠标按钮被单击时(常规一般是鼠标左键)才会触发 click 事件,因此检测按钮的信息并不是必要的. 但对于 mousedown 和 mouseup 事件来说,则在其 event 对象存在一个 button 属性,表示按下或释放按钮. <script type="text/javascript"> window.onload

JavaScript的事件对象_键盘事件

用户在使用键盘时会触发键盘事件.“DOM2 级事件”最初规定了键盘事件,结果又删除了相应的内容.最终还是使用最初的键盘事件,不过 IE9 已经率先支持“DOM3”级键盘事件. 一.键码 在发生 keydown 和 keyup 事件时,event 对象的 keyCode 属性中会包含一个代码,与键盘上一个特定的键对应.对数字字母字符集,keyCode 属性的值与 ASCII 码中对应小写字母或数字的编码相同.字母中大小写不影响. <script type="text/javascript&q

JavaScript的事件对象_其他属性和方法

在标准的 DOM 事件中,event 对象包含与创建它的特定事件有关的属性和方法.触发的事件类型不一样,可用的属性和方法也不一样. 在这里,我们只看所有浏览器都兼容的属性或方法.首先第一个我们了解一下 W3C 中的 target 和 IE 中的 srcElement,都表示事件的目标. <script type="text/javascript"> function getTarget(evt) { var e = evt || window.event; return e

JavaScript的事件对象_事件流

事件流事件流是描述的从页面接受事件的顺序,当几个都具有事件的元素层叠在一起的时候,那么你点击其中一个元素,并不是只有当前被点击的元素会触发事件,而层叠在你点击范围的所有元素都会触发事件.事件流包括两种模式:冒泡和捕获. 事件冒泡,是从里往外逐个触发.事件捕获,是从外往里逐个触发.那么现代的浏览器默认情况下都是冒泡模型,而捕获模式则是早期的 Netscape 默认情况.而现在的浏览器要使用 DOM2 级模型的事件绑定机制才能手动定义事件流模式. <script type="text/java

JavaScript获取事件对象和目标对象

在JavaScript开发中,经常需要获取触发某个事件的目标对象.让后根据目标对象进行不同的业务处理.下面展示通过JavaScript获取触发事件的事件目标对象.如下: Js代码 1 2 3 4 5 6 7 8 9 10 window.onload = function(){     var obj = document.getElementById("test");        obj.onclick = function(event){       // W3C的event对象直

JavaScript:事件对象Event和冒泡

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 绑定事件的两种方式 我们在上一篇文章 DOM操作详解 中已经讲过事件的概念.这里讲一下注册事件的两种方式,我们以onclick事件为例. 方式一:onclick 举例: <body> <button>点我</button> <script> var btn = document.getElementsByTagName("

JavaScript的事件_事件概述/事件模型

一.事件概述 JavaScript 事件是由访问 Web 页面的用户引起的一系列操作,例如:用户点击页面上的某个按钮或者鼠标移动到页面的某个图片上而产生一系列的互动的反馈. 当用户执行某些操作的时候,再去执行一系列代码. 事件一般是用于浏览器和用户操作进行交互.最早是 IE 和 Netscape Navigator 中出现,作为分担服务器端运算负载的一种手段.直到几乎所有的浏览器都支持事件处理. 而 DOM2级规范开始尝试以一种复合逻辑的方式标准化 DOM 事件.IE9.Firefox.Oper

JavaScript之jQuery-4 jQuery事件(页面加载后执行、事件处理、事件冒泡、事件对象、模拟操作)

一.jQuery 页面加载后执行 代码执行的时机选择 - $(document).ready()方法和 window.onload事件具有相似的功能,但是在执行时机方面是有区别的 - window.onload 事件是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行 - $(document).ready()方法注册的事件处理程序,在DOM完全加载后就可以调用 - 一般来讲, $(document).ready()的执行要优于window.onload事件 - 需要注意的是,

JS DOM基础 事件概述 事件流 事件处理方法 添加监听器 事件类型 事件对象 事件委托

一.事件概述 事件是什么? 在我们的生活中,都会接触到事件这样一个概念,它通常通过描述发生这件事的时间.地点.人物,发生了什么来进行概括. 同样的在javascript也有这样的一个的东西------事件. 页面上发生的事件:鼠标移动.点击.滚动等等. 事件描述了页面上发生的事情,通常它有以下三个要素组成: 事件源:触发事件的元素 事件类型:事件的触发方式(例如鼠标点击或键盘点击) 事件处理程序(事件监听器):事件触发后要执行的代码(函数形式) Javascript 使我们可以动态的去操作一个页