什么是“事件监听”

DOM允许我们书写JS代码,来让HTML元素对事件作出反应

事件:用户与网页的交互动作;eg:点击网页;

监听:是为了让计算机随时能够发现这个事件发生了,从而执行程序员预先编写的一些程序;

设置事件监听的方法主要有onxxx和addEventListener()两种

最简单的设置事件监听的方法

设置它们的onxxx属性

oBox.onclick = function () {
    // 点击盒子时,将执行这里的语句
}

常见的鼠标事件监听

事件名 事件描述
onclick 当鼠标单机某个对象
ondblclick 当鼠标双击某个对象
onmousedown 当某个鼠标按键在某个对象上被按下
onmouseup 当某个鼠标按键在某个对象上被松开
onmousemove 当某个鼠标按键在某个对象上被移动
onmouseenter 当鼠标进入某个对象(相似事件onmouseover)
onmouseleave 当鼠标离开某个对象(相似事件onmouseout)

常见的键盘事件监听

事件名 事件描述
onkeypress 当某个键盘的键被按下(系统按钮,如箭头键和功能键无法得到识别)
onkeydown 当某个键盘的键被按下(系统按钮可以识别,并且会先于onkeypress发生)
onkeyup 当某个键盘的键被松开

常见的表单事件监听

事件名 事件描述

onchange

当用户改变某个表单域的内容时,会触发
onfocus 当某元素获得焦点(比如tab键或鼠标点击)
onblur 当某元素失去焦点
onsubmit 当表单被提交
onreset 当表单被重置

常见的页面事件监听

事件名 事件描述
onload 当页面或图像被完成加载
onunload 当用户退出页面

事件的传播

先从外到内(捕获阶段),然后再从内到外(冒泡阶段)

而,onxxx这样的写法(DOM0级),只能监听冒泡阶段;所以需要用到addEventListener()方法(DOM2级);

oBox1.addEventListener('click', function(){
    // 这是事件处理函数
}, true)  // true表示监听捕获阶段,false表示监听冒泡阶段

注意事项

  • 内部的元素不再区分捕获和冒泡阶段,会先执行写在前面的监听,然后执行后写的监听;
  • 如果给元素设置相同的两个或多个同名事件,则DOM0级写法后面写的会覆盖先写的;而DOM2级会按顺序执行
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。