鼠标事件:


事件

描述

onclick

单击元素

oncontextmenu

右键弹出菜单

ondbclick

双击元素

onmousedown

元素上按下鼠标键

onmouseenter

鼠标指针移动到元素上

onmouseleave

鼠标移动到元素外

onmousemove

鼠标指针在元素上移动

onmouseover

鼠标指针移动到一个元素或其子元素

键盘事件:


事件

描述

onkeydown

按下一个键

onkeypress

按下并弹起按键

onkeyup

释放按键

onerror

加载外部文件错误

onload

加载对象

onresize

调整视图大小

onscroll

滚动条

表单事件:


事件

描述

onblur

失去焦点

onchange

状态变化

onfocus

获得焦点

onreset

重置表单

onselect

选择文本

onsubmit

提交表单

以上是JavaScript中的常用事件。事件处理器:它是JavaScript检测到一个特定事件时所执行的一段代码。内联处理器:


type="button" value="tip" onclick="javascript:alert('你单击了我');">

通常就是直接在事件中直接处理的。可以明确写javascript:,也可以省略。


type="button" value="tip" onclick="alert('你单击了我');">

作为DOM对象的属性的事件处理器:


<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>    <script>        window.onload(function () {            var button1 = document.getElementById('btn1');            button1.onclick = function () {                alert("你单击了我");            }        });script>head><body>    <input type="button" value="tip" id="btn1">body>html>

以上代码,我们可以看出,页面中有一个按钮,我们需要给这个按钮添加一个onclick单击事件,我们可以在页面加载函数window.onload中,先获取按钮对象,然后给对象的onclick事件,添加一个匿名处理函数,函数中只有一个处理操作,就是弹出提示框。如果不适用匿名函数,使用具名函数也是可以的。


<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>    <script>        function sayHello() {            alert('你单击了我。');        }        window.onload = function () {            var button1 = document.getElementById('btn1');            button1.onclick = sayHello;        }script>head><body>    <input type="button" id="btn1" value="按钮">body>html>

这里需要记住,在给button1对象的onclick事件赋值处理函数时,只需要赋值函数名称即可,不需要带括号,因为带括号意味着执行函数体的代码。使用addEventListener()方法:当我们需要给一个元素添加多个事件处理器时,就需要使用这个方法了。


<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>    <script>        function f1() {            alert("我处理一部分");        }        function f2() {            alert("我处理另一个部分");        }        window.onload = function () {            var button1 = document.getElementById('btn1');            button1.addEventListener('click',f1);            button1.addEventListener('click',f2);        }script>head><body>    <input type="button" id="btn1" value="多处理函数">body>html>

这里需要注意一点,就是addEventListener方法中,对事件的参数不需要带on,比如按钮的单击事件是onclick,参数1添加时,只需要写click,就可以了。你可以这样理解,把事件中的on去掉,就是参数1。从上面代码中,可以看到,我们可以对一个按钮添加了两个处理函数,分别处理不同的内容。当我们需要对添加的多余处理函数,移除时,可以这样:


<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>    <script>        function f1() {            alert("我处理一部分");        }        function f2() {            alert("我处理另一个部分");        }        window.onload = function () {            var button1 = document.getElementById('btn1');            button1.addEventListener('click',f1);            button1.addEventListener('click',f2);                        var button2 = document.getElementById('btn2');            button2.onclick = function () {                var button1 = document.getElementById('btn1');                button1.removeEventListener('click',f1);                button1.removeEventListener('click',f2);            }        }script>head><body>    <input type="button" id="btn1" value="多处理函数">    <input type="button" id="btn2" value="移除">body>html>

以上代码,我们通过移除,就可以动态的把button1对象的全部处理时间函数,都拿掉了。event对象:在键盘事件中,很多时候我们需要知道用户具体按下了什么键,可以通过event对象获得。


<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>    <script>        function myFunc(event) {           var key1 = event.keyCode;           if(key1 == 27)           {               alert('你按下了esc键');           }        }        window.onload = function () {            var input1 = document.getElementById('text1');            input1.addEventListener('keydown',myFunc);        }script>head><body>    <input type="text" id="text1">body>html>

以上代码中,有一个文本输入框,我们为其添加了一个onkeydown事件,处理函数中,判断当按下esc键时,弹出提示框。event对象的keyCode属性获取按键码,27代表esc键。事件的发生顺序:当点击鼠标按键时,mousedown,mouseup和click,是按照什么顺序发生的呢?mousedown和mouseup事件都在click事件之前发生。下节我们分享关于逻辑控制的内容。