鼠标事件:

 

事件 描述
onclick 单击元素
oncontextmenu 右键弹出菜单
ondbclick 双击元素
onmousedown 元素上按下鼠标键
onmouseenter 鼠标指针移动到元素上
onmouseleave 鼠标移动到元素外
onmousemove 鼠标指针在元素上移动
onmouseover 鼠标指针移动到一个元素或其子元素

 

键盘事件:

 

事件 描述
onkeydown 按下一个键
onkeypress 按下并弹起按键
onkeyup 释放按键
onerror 加载外部文件错误
onload 加载对象
onresize 调整视图大小
onscroll 滚动条

 

表单事件:

 

事件 描述
onblur 失去焦点
onchange 状态变化
onfocus 获得焦点
onreset 重置表单
onselect 选择文本
onsubmit 提交表单

 

以上是JavaScript中的常用事件。

 

事件处理器:

 

它是JavaScript检测到一个特定事件时所执行的一段代码。

 

内联处理器:

 

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

 

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

 

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

 

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

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <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事件,添加一个匿名处理函数,函数中只有一个处理操作,就是弹出提示框。

 

如果不适用匿名函数,使用具名函数也是可以的。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <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()方法:

 

当我们需要给一个元素添加多个事件处理器时,就需要使用这个方法了。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <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。

 

从上面代码中,可以看到,我们可以对一个按钮添加了两个处理函数,分别处理不同的内容。

 

当我们需要对添加的多余处理函数,移除时,可以这样:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <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对象获得。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <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事件之前发生。

 

 

下节我们分享关于逻辑控制的内容。

 


 

 

事件-JavaScript入门基础(014)_javascript