事件是由访问 Web 页面的用户引起的操作,比如鼠标点击按钮、滑过某个图片都可能会触发事件。

JavaScript 中通过给 HTML 元素添加“事件监听”,从而让此元素对各种事件作出反应。

题目:点击按钮,弹出对话框,显示“你好,JavaScript!”。

案例代码如下:

<!DOCTYPE html >

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<button id="btn">按我</button>

<script type="text/javascript">

// 得到这个按钮

var oBtn = document.getElementById("btn");

//单击事件监听

oBtn.onclick = function(){

alert("你好,JavaScript!");

}

</script>

</body>

</html>

代码中,oBtn.onclick=function(){}是核心语句,在为按钮添加单击事件监听。所谓“监听”是浏览器

底层程序在实时“监控”着按钮是否被点击,一旦被点击,则立即执行设置的这个函数,这个函数叫做“事件处

理函数”。

JavaScript 中,事件监听的名字基本都是以 on 开头,表示“当”。比如 onclick 就是“当单击时”的意

思。表 8-1 列出了几个常见的事件监听。

表 8-1 常见事件监听

事件名 意义

onclick 单击

onmouseover 鼠标进入

onmouseout 鼠标离开

ondblclick 双击

onmousedown 鼠标按下

onmouseup 鼠标按键抬起

给 HTML 元素添加事件监听写法较为固定,公式为:

元素.事件名 = function(){

}

同一个元素可以添加多个不同的事件监听。比如一个按钮,又可以监听鼠标进入事件,也可以同时监听鼠标

离开事件。

实战案例:鼠标触碰图片切换

题目:鼠标碰到图片就换图;鼠标离开图片,恢复原图。

本案例需要给盒子添加两个事件监听 onmouseover 和 onmouseout,分别监听鼠标进入图片和鼠标离开图

片两个事件。

代码如下:

<!DOCTYPE html >

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<img src="images/pic_a.jpg" id="pic" />

<script type="text/javascript">

// 得到这个图片

var oPic = document.getElementById("pic");

//鼠标进入事件监听

oPic.onmouseover= function(){

this.src = "images/pic_b.jpg";

}

//鼠标离开事件监听

oPic.onmouseout = function(){

this.src = "images/pic_a.jpg";

}

</script>

</body>

</html>

程序中的事件处理函数中出现了 this,表示 oImg 自身。事件处理函数中的 this 一律表示添加监听的这元

素本身。

程序中给 oPic 元素添加了两个事件监听:onmouseover、onmouseout,分别监听鼠标进入图片和鼠标离

开图片。鼠标进入触碰时,图片的路径被改为“pic_b.jpg”,而鼠标离开时图片的路径又被更改回来。

本章作业

1. DOM 是什么?它有什么优点?

2. 得到 HTML 元素的方式有哪些?兼容性如何?

3. 如何通过 DOM 对 HTML 元素进行基本操作,如改变它的内部文字、标签的属性、改变类型和设置 CSS 样式?

4. 如何为元素添加事件监听?

5. 制作一个效果:鼠标触碰复选框时,显示“为了信息安全,请勿在网吧或公用电脑上使用此功能!”字样的

提示盒子。鼠标离开时,盒子隐藏。

6. 制作鼠标触碰图片切换图片的效果。