DOM 事件
为了在用户点击元素时执行代码,请向 HTML 事件属性添加 JavaScript 代码:
onclick
例:当用户点击 h1标签时,会改变其内容:
<html>
<body>
<h1 onclick="this.innerHTML = 'Hello!'">点击此文本!</h1>
</body>
</html>
<html>
<body>
<h1 onclick="changeText(this)">点击此文本!</h1>
<script>
function changeText(id) {
id.innerHTML = "Hello:)";
}
</script>
</body>
</html>
HTML 事件属性
如需向 HTML 元素分配事件,您能够使用事件属性。
例
向 button 元素分配 onclick 事件:
<button onclick="displayDate()">试一试</button>
使用 HTML DOM 分配事件
HTML DOM 允许您使用 JavaScript 向 HTML 元素分配事件:
为 button 元素指定 onclick 事件:
<script>
document.getElementById("myBtn").onclick = displayDate;
</script>
当点击按钮时将执行函数。
onload 和 onunload 事件
当用户进入后及离开页面时,会触发 onload 和 onunload 事件。
onload 和 onunload 事件可用于处理 cookie。
例
<body onload="checkCookies()">
onchange 事件
onchange 事件经常与输入字段验证结合使用。
例
<input type="text" id="fname" onchange="upperCase()">
onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于当用户将鼠标移至 HTML 元素上或移出时触发某个函数:
onmousedown, onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 事件构成了完整的鼠标点击事件。
首先当鼠标按钮被点击时,onmousedown 事件被触发;然后当鼠标按钮被释放时,onmouseup 事件被触发;最后,当鼠标点击完成后,onclick 事件被触发。
DOM事件监听器
addEventListener() 方法
例
添加当用户点击按钮时触发的事件监听器:
document.getElementById("myBtn").addEventListener("click", displayDate);
addEventListener() 方法为指定元素指定事件处理程序。
addEventListener() 方法
为元素附加事件处理程序而不会覆盖已有的事件处理程序。
能够向一个元素添加多个事件处理程序。
使我们更容易控制事件如何对冒泡作出反应。
向元素添加事件处理程序
例
当用户点击某个元素时提示 "Hello World!":
element.addEventListener("click", function(){ alert("Hello World!"); });
也可以引用外部“命名”函数:
例
element.addEventListener("click", myFunction);
function myFunction() {
alert ("Hello World!");
}
能够向相同元素添加不同类型的事件:
例
element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);
传递参数
当传递参数值时,请以参数形式使用调用指定函数的“匿名函数”:
例
element.addEventListener("click", function(){ myFunction(p1, p2); });
冒泡与捕获
在 addEventListener() 方法中,你能够通过使用“useCapture”参数来规定传播类型:
addEventListener(event, function, useCapture);
默认值是 false,将使用冒泡传播,如果该值设置为 true,则事件使用捕获传播。
例
document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);
removeEventListener() 方法
removeEventListener() 方法会删除已通过 addEventListener() 方法附加的事件处理程序:
例
element.removeEventListener("mousemove", myFunction);