JavaScript HTML DOM 事件

HTML DOM 允许 JavaScript 对 HTML 事件作出反应:

鼠标移上来!

点击我

对事件作出反应

JavaScript 能够在事件发生时执行,比如当用户点击某个 HTML 元素时。

为了在用户点击元素时执行代码,请向 HTML 事件属性添加 JavaScript 代码:

  1. onclick=JavaScript

HTML 事件的例子:

  • 当用户点击鼠标时
  • 当网页加载后
  • 当图像加载后
  • 当鼠标移至元素上时
  • 当输入字段被改变时
  • 当 HTML 表单被提交时
  • 当用户敲击按键时

在本例中,当用户点击 <h1> 时,会改变其内容:

实例

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <h1 onclick="this.innerHTML = 'Hello!'">点击此文本!</h1>
  6.  
  7. </body>
  8. </html>

在本例中,从事件处理程序调用函数:

实例

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <h1 onclick="changeText(this)">点击此文本!</h1>
  6.  
  7. <script>
  8. function changeText(id) {
  9. id.innerHTML = "Hello:)";
  10. }
  11. </script>
  12.  
  13. </body>
  14. </html>

HTML 事件属性

如需向 HTML 元素分配事件,您能够使用事件属性。

实例

向 button 元素分配 onclick 事件:

  1. <button onclick="displayDate()">试一试</button>

在上例中,名为 displayDate 的函数会在按钮被点击时执行。

使用 HTML DOM 分配事件

HTML DOM 允许您使用 JavaScript 向 HTML 元素分配事件:

实例

为 button 元素指定 onclick 事件:

  1. <script>
  2. document.getElementById("myBtn").onclick = displayDate;
  3. </script>

在上例中,名为 displayDate 的函数被分配到 id="myBtn" 的 HTML 元素。

当点击按钮时将执行函数。

onload 和 onunload 事件

当用户进入后及离开页面时,会触发 onload 和 onunload 事件。

onload 事件可用于检测访问者的浏览器类型和浏览器版本,然后基于该信息加载网页的恰当版本。

onload 和 onunload 事件可用于处理 cookie。

实例

  1. <body onload="checkCookies()">

onchange 事件

onchange 事件经常与输入字段验证结合使用。

下面是一个如何使用 onchange 的例子。当用户改变输入字段内容时,会调用 upperCase() 函数。

实例

  1. <input type="text" id="fname" onchange="upperCase()">

onmouseover 和 onmouseout 事件

onmouseover 和 onmouseout 事件可用于当用户将鼠标移至 HTML 元素上或移出时触发某个函数:

鼠标移上来!

onmousedown, onmouseup 以及 onclick 事件

onmousedown, onmouseup 以及 onclick 事件构成了完整的鼠标点击事件。

首先当鼠标按钮被点击时,onmousedown 事件被触发;然后当鼠标按钮被释放时,onmouseup 事件被触发;最后,当鼠标点击完成后,onclick 事件被触发。

点击我

更多实例

onmousedown 和 onmouseup

当用户按下鼠标按钮时改变图像。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script>
  5. function lighton() {
  6. document.getElementById('myimage').src = "/i/eg_bulbon.gif";
  7. }
  8. function lightoff() {
  9. document.getElementById('myimage').src = "/i/eg_bulboff.gif";
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="/i/eg_bulboff.gif" />
  15. <p>点击鼠标并按住!</p>
  16. </body>
  17. </html>

onload

当页面已完成加载时显示报警框。

  1. <!DOCTYPE html>
  2. <html>
  3. <body onload="checkCookies()">
  4. <p id="demo"></p>
  5. <script>
  6. function checkCookies() {
  7. var text = "";
  8. if (navigator.cookieEnabled == true) {
  9. text = "Cookie 已启用";
  10. } else {
  11. text = "Cookie 未启用";
  12. }
  13. document.getElementById("demo").innerHTML = text;
  14. }
  15. </script>
  16. </body>
  17. </html>

onfocus

当输入字段获得焦点时改变其背景色。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script>
  5. function myFunction(x) {
  6. x.style.background = "yellow";
  7. }
  8. </script>
  9. </head>
  10. <body>
  11. 请输入您的名字:<input type="text" onfocus="myFunction(this)">
  12. <p>当输入字段获得焦点时,将触发一个更改背景颜色的函数。</p>
  13. </body>
  14. </html>

鼠标事件

当指针移动到元素上时改变其颜色。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1 onmouseover="style.color='red'"
  5. onmouseout="style.color='black'">
  6. 鼠标移动到此文本上</h1>
  7. </body>
  8. </html>

HTML DOM Event 对象参考手册

如需所有 HTML DOM 事件的列表,请访问我们完整的 HTML DOM 事件对象参考手册