首页 > 代码库 > JavaScript笔记——事件

JavaScript笔记——事件

事件一般是用于浏览器和用户操作进行交互。最早是 IE 和 Netscape Navigator 中出现, 作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。而 DOM2 级规范开始尝试以一种复合逻辑的方式标准化 DOM 事件

JavaScript 有三种事件模型:内联模型、脚本模型和 DOM2 模型

内联模型

这种模型是最传统接单的一种处理事件的方法。在内联模型中,事件处理函数是 HTML 标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但它是和 HTML 混写的, 并没有与 HTML 分离

//在 HTML 中把事件处理函数作为属性执行 JS 代码<input type="button" value="按钮" onclick="alert(‘abc‘);" /> //注意单双引号//在 HTML 中把事件处理函数作为属性执行 JS 函数<input type="button" value="按钮" onclick="box();" /> //执行 JS 的函数,函数不得放到 window.onload 里面,这样就看不见了

脚本模型

由于内联模型违反了 HTML 与 JavaScript 代码层次分离的原则。为了解决这个问题,我 们可以在 JavaScript 中处理事件。这种处理方式就是脚本模型

var input = document.getElementsByTagName(‘input‘)[0]; //得到 input 对象input.onclick = function () { //匿名函数执行alert(‘abc‘);};

通过匿名函数,可以直接触发对应的代码。也可以通过指定的函数名赋值的方式 来执行函数(赋值的函数名不要跟着括号)

input.onclick = box; //把函数名赋值给事件处理函数

事件处理函数

JavaScript 可以处理的事件类型为:鼠标事件、键盘事件、HTML 事件

部分事件处理函数 :

事件处理函数影响的元素何时发生
onchange输入框,选择框和文本区域当改变一个元素的值且失去焦点时
onclick链接、按钮、表单对象、图像映射区域当用户单击对象时
ondblclick链接、按钮、表单对象当用户双击对象时
onkeydown文档、图像、链接、表单当按键被按下时
onkeyup文档、图像、链接、表单当按键被松开时
onkeypress文档、图像、链接、表单当按键被按下然后松开时
onload主题、框架集、图像文档或图像加载后
onunload主体、框架集文档或框架集卸载后
onmove窗口当浏览器窗口移动时
onselect表单元素当选择一个表单对象时
onsubmit表单当发送表格到服务器时
onreset表单复位按钮单击表单的 reset 按钮

所有的事件处理函数都会都有两个部分组成,on + 事件名称,例如 click 事件的事 件处理函数就是:onclick。对于每一个事件,它都有自己的触发范围和方式,如果超出了触发范围和方式,事件处理将失效

1.鼠标事件,页面所有元素都可触发

click:当用户单击鼠标按钮或按下回车键时触发

input.onclick = function () { alert(‘abc‘); };

dblclick:当用户双击主鼠标按钮时触发

input.ondblclick = function () { alert(‘abc‘); };

 

2.键盘事件

keydown:当用户按下键盘上任意键触发,如果按住不放,会重复触发

onkeydown = function () {alert(‘abc‘);};

keypress:当用户按下键盘上的字符键触发,如果按住不放,会重复触发

onkeypress = function () { alert(‘abc‘); };

keyup:当用户释放键盘上的键触发

onkeyup = function () { alert(‘abc‘); };

 

3.HTML 事件

load:当页面完全加载后在 window 上面触发,或当框架集加载完毕后在框架集上触发

window.onload = function () { alert(‘abc‘); };

unload:当页面完全卸载后在 window 上面触发,或当框架集卸载后在框架集上触发

window.onunload = function () { alert(‘abc‘); };

select:当用户选择文本框(input 或 textarea)中的一个或多个字符触发

input.onselect = function () { alert(‘abc‘); };

change:当文本框(input 或 textarea)内容改变且失去焦点后触发

input.onchange = function () { alert(‘abc‘); };

submit:当用户点击提交按钮在<form>元素上触发

form.onsubmit = function () { alert(‘abc‘); };

reset:当用户点击重置按钮在<form>元素上触发

form.onreset= function () { alert(‘abc‘); };

 

JavaScript笔记——事件