JavaScript事件---事件入门
内容提纲:
1.事件介绍
2.内联模型
3.脚本模型
4.事件处理函数
JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。
一.事件介绍
事件一般是用于浏览器和用户操作进行交互的。最早是IE和Netscape Navigator中出现,作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。而DOM2级规范开始尝试以一种复合逻辑的方式标准化DOM事件。IE9、Firefox、Opera、Safari和Chrome全都已经实现了“DOM2级事件”模块的核心部分。IE8之前浏览器仍然使用其专有事件模型(IE就是这么讨厌!)。
JavaScript有三种事件模型:内联模型、脚本模型和DOM2模型。
二.内联模型
这种模型是最传统的一种处理事件的方法。在内联模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件。内联在早期使用较多,但它是和HTML混写的,并没有与HTML分离。
//在HTML中把事件处理函数作为属性执行JS代码
<input type="button" value="按钮" onclick="alert('MR.Lee');" /> //注意单双引号
//在HTML中把事件处理函数作为属性执行JS函数
<input type="button" value="按钮" onclick="box();" /> //执行JS的函数
PS:函数不得放到window.onload里面,这样就看不见了(因为window.onload 是一个匿名函数,将函数放到里面不在全局范围内了,外面的就访问不到它了)。
三.脚本模型
由于内联模型违反了HTML与JavaScript代码层次分离的原则。为了解决这个问题,我们可以在JavaScript中处理事件。这种处理方式就是脚本模型。
var input = document.getElementsByTagName('input')[0]; //得到input对象
input.onclick = function () { //匿名函数执行
alert('Lee');
};
PS:通过匿名函数,可以直接触发对应的代码。也可以通过指定的函数名赋值的方式来执行函数(注意:赋值的函数名不要跟着括号)。
input.onclick = box; //把函数名赋值给事件处理函数(通过点击触发执行)
四.事件处理函数
JavaScript可以处理的事件类型为:鼠标事件、键盘事件、HTML事件。
JavaScript事件处理函数及其使用列表
| 
 事件处理函数  | 
 影响的元素  | 
 何时发生  | 
| 
 onabort  | 
 图像  | 
 当图像加载被中断时  | 
| 
 onblur  | 
 窗口、框架、所有表单对象  | 
 当焦点从对象上移开时  | 
| 
 onchange  | 
 输入框,选择框和文本区域  | 
 当改变一个元素的值且失去焦点时  | 
| 
 onclick  | 
 链接、按钮、表单对象、图像映射区域  | 
 当用户单击对象时  | 
| 
 ondblclick  | 
 链接、按钮、表单对象  | 
 当用户双击对象时  | 
| 
 ondragdrop  | 
 窗口  | 
 当用户将一个对象拖放到浏览器窗口时  | 
| 
 onError  | 
 脚本  | 
 当脚本中发生语法错误时  | 
| 
 onfocus  | 
 窗口、框架、所有表单对象  | 
 当单击鼠标或者将鼠标移动聚焦到窗口或框架时  | 
| 
 onkeydown  | 
 文档、图像、链接、表单  | 
 当按键被按下时  | 
| 
 onkeypress  | 
 文档、图像、链接、表单  | 
 当按键被按下然后松开时  | 
| 
 onkeyup  | 
 文档、图像、链接、表单  | 
 当按键被松开时  | 
| 
 onload  | 
 主题、框架集、图像  | 
 文档或图像加载后  | 
| 
 onunload  | 
 主体、框架集  | 
 文档或框架集卸载后  | 
| 
 onmouseout  | 
 链接  | 
 当鼠标移出链接时  | 
| 
 onmouseover  | 
 链接  | 
 当鼠标移到链接时  | 
| 
 onmove  | 
 窗口  | 
 当浏览器窗口移动时  | 
| 
 onreset  | 
 表单复位按钮  | 
 单击表单的reset按钮  | 
| 
 onresize  | 
 窗口  | 
 当选择一个表单对象时  | 
| 
 onselect  | 
 表单元素  | 
 当选择一个表单对象时  | 
| 
 onsubmit  | 
 表单  | 
 当发送表单到服务器时  | 
PS:所有的事件处理函数都会都有两个部分组成,on + 事件名称,例如click事件的事件处理函数就是:onclick。在这里,我们主要谈论脚本模型的方式来构建事件,违反分离原则的内联模式,我们忽略掉。
对于每一个事件,它都有自己的触发范围和方式,如果超出了触发范围和方式,事件处理将失效。
1.鼠标事件,页面所有元素都可触发
click:当用户单击鼠标按钮或按下回车键时触发。
input.onclick = function () {
alert('TT');
};
dblclick:当用户双击主鼠标按钮时触发。
input.ondblclick = function () {
alert('TT');
};
mousedown:当用户按下了鼠标还未弹起时触发。
input.onmousedown = function () {
alert('TT');
};
mouseup:当用户释放鼠标按钮时触发。
input.onmouseup = function () {
alert('TT');
};
mouseover:当鼠标移到某个元素上方时触发。
input.onmouseover = function () {
alert('TT');
};
mouseout:当鼠标移出某个元素上方时触发。
input.onmouseout = function () {
alert('TT');
};
mousemove:当鼠标指针在元素上移动时触发。
input.onmousemove = function () {
alert('TT');
};
2.键盘事件
keydown:当用户按下键盘上任意键触发,如果按住不放,会重复触发。
onkeydown = function () {
alert('TT');
};
keypress:当用户按下键盘上的字符键触发,如果按住不放,会重复触发。
onkeypress = function () {
alert('TT');
};
keyup:当用户释放键盘上的键触发。
onkeyup = function () {
alert('TT');
};
3.HTML事件
load:当页面完全加载后在window上面触发,或当框架集加载完毕后在框架集上触发。
window.onload = function () {
alert('TT');
};
unload:当页面完全卸载后在window上面触发,或当框架集卸载后在框架集上触发。
window.onunload = function () {
alert('TT');
};
select:当用户选择文本框(input或textarea)中的一个或多个字符触发。
input.onselect = function () {
alert('TT');
};
change:当文本框(input或textarea)内容改变且失去焦点后触发。
input.onchange = function () {
alert('TT');
};
focus:当页面或者元素获得焦点时在window及相关元素上面触发。
input.onfocus = function () {
alert('TT');
};
blur:当页面或元素失去焦点时在window及相关元素上触发。
input.onblur = function () {
alert('TT');
};
submit:当用户点击提交按钮在<form>元素上触发。
form.onsubmit = function () {
alert('TT');
};
reset:当用户点击重置按钮在<form>元素上触发。
form.onreset= function () {
alert('TT');
};
resize:当窗口或框架的大小变化时在window或框架上触发。
window.onresize = function () {
alert('TT');
};
scroll:当用户滚动带滚动条的元素时触发。
window.onscroll = function () {
alert('TT');
};
发文不易,若转载传播,请亲注明出处,谢谢!
JavaScript事件---事件入门的更多相关文章
- JavaScript onkeydown事件入门实例(键盘某个按键被按下)
		
JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...
 - JavaScript事件---事件对象
		
发文不易,若转载传播,请亲注明出处,谢谢! 内容提纲: 1.事件对象 2.鼠标事件 3.键盘事件 4.W3C与IE JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开 ...
 - jQuery $(document).ready()和JavaScript onload事件
		
jQuery $(document).ready()和JavaScript onload事件 Why we need a right time? 对元素的操作和事件的绑定需要等待一个合适的时机,可以看 ...
 - Javascript事件模型系列(四)我所理解的javascript自定义事件
		
被我拖延了将近一个月的javascript事件模型系列终于迎来了第四篇,也是我计划中的最后一篇,说来太惭愧了,本来计划一到两个星期写完的,谁知中间遇到了很多事情,公司的个人的,搞的自己心烦意乱浮躁了一 ...
 - javascript通用事件封装
		
随着最近几年Html5的兴起,越来越多的应用采用html5进行实现,一个优秀的网页应用不但需要美观简洁的UI界面,更需要一个良好的交互.网页应用大部分的交互需要用javascript事件进行实现.虽然 ...
 - javascript的事件
		
前戏 今天在博客中看到了javascript的事件机制,就自己试试写一个简单的冒泡捕获测试,但是测试结果出乎了我的意料,主要是自己原来对事件了解不是很清楚,现在写篇博客记录下. 基础 先来看一下我在A ...
 - javascript对象事件绑定方法
		
javascript对象事件绑定方法 今天在做对象事件绑定的过程中出现了一点异外情况,由于事件方法是由参数传过来的,需要将当前对象call过去,方便方法体里直接调用this 错误写法 obj.oncl ...
 - JavaScript的事件代理(转)
		
如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么 ...
 - [转]javascript指定事件处理程序包括三种方式:
		
javascript指定事件处理程序包括三种方式: (1):DOM0级事件处理程序 如: 代码如下: var btn=document.getElementById("mybtn" ...
 
随机推荐
- 初识zookeeper(二)之与Dubbo-admin关联
			
1.简介:dubbo-admin,即dubbo管理控制台,管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能,主要是用于Dubbo服务的 ...
 - 怎么学习计算电磁学【QUORA】
			
链接 There are several resources. But it depends on what you actually want to learn...Let me explain: ...
 - Linux 系统常用命令汇总(二) vi 文本编辑
			
文本编辑 vi 命令 作用 +文件名 编辑文本文件,若文件不存在同时创建该文件 Ctrl+f 向后翻一页 Ctrl+b 向前翻一页 Ctrl+d 向后翻半页 Ctrl+u 向前翻半页 + 光标移动到下 ...
 - 【NOIP合并果子】uva 10954 add all【贪心】——yhx
			
Yup!! The problem name reects your task; just add a set of numbers. But you may feel yourselvesconde ...
 - 数论+spfa算法 bzoj 2118 墨墨的等式
			
2118: 墨墨的等式 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1283 Solved: 496 Description 墨墨突然对等式很感兴 ...
 - 深度优先搜索 codevs 1064 虫食算
			
codevs 1064 虫食算 2004年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 所 ...
 - MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)
			
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
 - ASP代码审计一枚
			
<% On Error Resume Next dim name, pass, sql, action set conn = server.CreateObject("ADODB.Co ...
 - Android优化——UI优化(二) 使用include标签复用布局
			
使用include标签复用布局 - 1.include标签的作用 假如说我下图的这个布局在很多界面都用到了,我该怎么办?每个页面都写一遍的话,代码太冗余,并且维护难度加大. <LinearLay ...
 - xcode插件XAlign
			
一款十分强大的自定义对齐模式插件 开源地址:https://github.com/qfish/XAlign/ 终端输入命令: $ curl http://qfi.sh/XAlign/build/ins ...