学习要点:
1.事件介绍
2.内联模型
3.脚本模型
4.事件处理函数
JavaScript 事件是由访问 Web 页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。
一.事件介绍
事件一般是用于浏览器和用户操作进行交互。最早是 IE 和 Netscape Navigator 中出现,作为分担服务器端运算负载的一种手段。 直到几乎所有的浏览器都支持事件处理。 而 DOM2级规范开始尝试以一种复合逻辑的方式标准化 DOM 事件。IE9、Firefox、Opera、Safari 和Chrome 全都已经实现了“DOM2 级事件”模块的核心部分。IE8 之前浏览器仍然使用其专有事件模型。
JavaScript 有三种事件模型:内联模型、脚本模型和 DOM2 模型。
二.内联模型
这种模型是最传统接单的一种处理事件的方法。 在内联模型中, 事件处理函数是 HTML标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但它是和 HTML 混写的,并没有与 HTML 分离。
//在 HTML 中把事件处理函数作为属性执行 JS 代码
<input type="button" value="按钮" onclick="alert('Lee');" /> //注意单双引号
//在 HTML 中把事件处理函数作为属性执行 JS 函数
<input type="button" value="按钮" onclick="box();" /> //执行 JS 的函数
PS:函数不得放到 window.onload 里面,这样就看不见了。
三.脚本模型
由于内联模型违反了 HTML 与 JavaScript 代码层次分离的原则。为了解决这个问题, 我们可以在 JavaScript 中处理事件。这种处理方式就是脚本模型。
var input = document.getElementsByTagName('input')[0]; //得到 input 对象 input.onclick = function () { //匿名函数执行 alert('Lee'); };
PS:通过匿名函数,可以直接触发对应的代码。也可以通过指定的函数名赋值的方式来执行函数(赋值的函数名不要跟着括号)。
input.onclick = box; //把函数名赋值给事件处理函数
四.事件处理函数
JavaScript 可以处理的事件类型为:鼠标事件、键盘事件、HTML 事件。
JavaScript 事件处理函数及其使用列表
PS: 所有的事件处理函数都会都有两个部分组成, on + 事件名称, 例如 click 事件的事件处理函数就是: onclick。在这里,我们主要谈论脚本模型的方式来构建事件,违反分离原则的内联模式,我们忽略掉。
对于每一个事件, 它都有自己的触发范围和方式, 如果超出了触发范围和方式, 事件处理将失效。
1.鼠标事件,页面所有元素都可触发
click:当用户单击鼠标按钮或按下回车键时触发。
input.onclick = function () { alert('Lee'); };
dblclick:当用户双击主鼠标按钮时触发。
input.ondblclick = function () { alert('Lee'); };
mousedown:当用户按下了鼠标还未弹起时触发。
input.onmousedown = function () { alert('Lee'); };
mouseup:当用户释放鼠标按钮时触发。
input.onmouseup = function () { alert('Lee'); };
mouseover:当鼠标移到某个元素上方时触发。
input.onmouseover = function () { alert('Lee'); };
mouseout:当鼠标移出某个元素上方时触发。
input.onmouseout = function () { alert('Lee'); };
mousemove:当鼠标指针在元素上移动时触发。
input.onmousemove = function () { alert('Lee'); };
2.键盘事件
keydown:当用户按下键盘上任意键触发,如果按住不放,会重复触发。
onkeydown = function () { alert('Lee'); };
keypress:当用户按下键盘上的字符键触发,如果按住不放,会重复触发。
onkeypress = function () { alert('Lee'); };
keyup:当用户释放键盘上的键触发。
onkeyup = function () { alert('Lee'); };
3.HTML 事件
load: 当页面完全加载后在 window 上面触发, 或当框架集加载完毕后在框架集上触发。
window.onload = function () { alert('Lee'); };
unload:当页面完全卸载后在 window 上面触发,或当框架集卸载后在框架集上触发。
window.onunload = function () { alert('Lee'); };
select:当用户选择文本框(input 或 textarea)中的一个或多个字符触发。
input.onselect = function () { alert('Lee'); };
change:当文本框(input 或 textarea)内容改变且失去焦点后触发。
input.onchange = function () { alert('Lee'); };
focus:当页面或者元素获得焦点时在 window 及相关元素上面触发。
input.onfocus = function () { alert('Lee'); };
blur:当页面或元素失去焦点时在 window 及相关元素上触发。
input.onblur = function () { alert('Lee'); };
submit:当用户点击提交按钮在<form>元素上触发。
form.onsubmit = function () { alert('Lee'); };
reset:当用户点击重置按钮在<form>元素上触发。
form.onreset= function () { alert('Lee'); };
resize:当窗口或框架的大小变化时在 window 或框架上触发。
window.onresize = function () { alert('Lee'); };
scroll:当用户滚动带滚动条的元素时触发。
window.onscroll = function () { alert('Lee'); };
相关推荐
第1章:iphone开发入门 第2章:窗口与视图 第3章:运算符与表达式 第4章:算法 第5章:选择结构 第6章:循环结构 第7章:函数 第8章:预处理命令 第9章:指针 ...第24章:文件操作 第25章:内存管理
第二章:WORKFLOW运行时 第三章:WORKFLOW实例 第四章:活动及WORKFLOW类型介绍 第五章:WORKFLOW跟踪 第六章:加载和卸载实例 第七章:基本活动的操作 第八章:调用外部方法及工作流 第九章:逻辑流活动 第十章:...
Django book 2.0 的中文翻译。 第一章:介紹Django 第二章: 入门 第三章: 视图和URL配置 第四章:模版 第五章:模型 第六章:Admin 第七章:表单 第八章: 高级视图和URL配置 ...第二十章: 安全
本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。 第一章:介紹Django 第二章 入门 第三章 视图和URL配置 ...第二十章: 安全
第二章:数组 11-31 第三章:面向对象程序开収 31-74 第四章:异常机制 74-89 第五章:多线程技术 89-122 第六章:常用类 API 122-139 第七章:集合框架(容器)+其他类对象使用 139-199 第八章:IO 流 199-...
第二章:基础知识 第三章:IO 服务 第四章:会话 第五章:过滤器 第六章:传输 第七章:事件处理器 第八章:字节缓存 第九章:编解码器过滤器 第十章:执行者过滤器 第十一章:SSL 过滤器 第十二章:日志过滤器 第十...
第二章:LabVIEW基本函数 第三章:LabVIEW的程序运行结构 第四章:LabVIEW的数据结构及内存优化 第五章:字符串与文件存储 高级篇 第六章:属性节点、方法节点及引用 第七章:高级控件的运用 第八章:文本编程与...
Django book 1.0, Django book 2.0 美化合并版, 版权归属 http://djangobook.py3k.cn/, 美化合并 by Rogues, http://rogues.download.csdn.net/ 下载正版! Django book 2.0 中文版 ...第二十章:安全
方便自己也方便大家,敬请积极参与翻译! 第一章:介紹Django 第二章 入门 第三章 视图和URL配置 第四章:模版 第五章:模型 第六章:Django站点管理 第七章:表单 第八章 高级视图和URL... 第二十章: 安全
第二章:起步 第三章:Objective-C 语言 第四章:内存管理 第五章:Target/Action 第六章:辅助(helper)对象 第七章:Key-Value Coding.Key-Value Observing 第八章:NSArrayController 第九章:NSUndoManager ...
第二章:LabVIEW基本函数第三章:LabVIEW的程序运行结构 第四章:LabVIEW的数据结构及内存优化 第五章:字符串与文件存储 高级篇 第六章:属性节点、方法节点及引用 第七章:高级控件的运用 第八章:文本编程...
第一章:介紹Django 阅读 01 第二章 入门 阅读 02 第三章 视图和URL配置 阅读 03 第四章:模版 阅读 04 第五章:模型 阅读 05 第六章:Admin 阅读 06 第七章:表单 阅读 07 ...第二十章: 安全 阅读 20
第二章:MyEclipse的基本使用; 第三章:Java基础语法; 第四章:数组的应用; 第五章:面向对象的Java编辑; 第六章:接口与内部类; 第七章:集合的应用; 第八章:异常和反射; 第九章:初识AWT和Swing; 第十章...
第二章:Transformer 模型 第三章:注意力机制 第四章:开箱即用的 pipelines 第五章:模型与分词器 第六章:必要的 Pytorch 知识 第七章:微调预训练模型 第八章:快速分词器 第九章:序列标注任务 第十章:翻译...
第一章:介紹Django 完成度 100.00% 阅读 翻译 第二章: 入门 完成度 100.00% 阅读 翻译 第三章: 视图和URL配置 完成度 100.00% 阅读 翻译 第四章:模版 完成度 100.00% ...第二十章: 安全 完成度 100.00% 阅读 翻译
方便自己也方便大家,敬请积极参与翻译!第一章:介紹Django 完成度 100.00% 阅读 翻译第二章: 入门 完成度 100.00% 阅读 翻译第三章: ... 国际化 完成度 100.00% 阅读 翻译第二十章: 安全 完成度 100.00% 阅读 翻译
第二章:C51开发环境与编译器 - 配置C51编译器:讲解如何安装和配置Keil uVision等C51集成开发环境。 - 创建第一个C51程序:编写"Hello, World!"程序,熟悉C51的基本语法。 第三章:数据类型与变量 - C51数据类型:...
第二十二章和第二十三章:介绍了Windows Forms应用程序,并讲解了如何在其中访问数据源。 附录A:列出了C++的关键字。 附录B:提供了ASCII码的参考。 附录C:给出了Windows消息类型的列表,这对于理解Windows编程...
第二十四章:使用Xcode进行自动化测试进阶 进阶章节将继续深入自动化测试的高级技巧和最佳实践。 第二十五章:可访问性 本章节将讨论如何设计可访问性高的iOS应用,使得所有用户,包括残障人士,都能方便使用。 ...
**第二十一章:使用框架和Cookies** - **框架内使用JavaScript**:实现动态更新框架内容。 - **Cookies管理**:设置、读取和删除Cookies。 **第二十二章:建立日历控件** - **综合应用**:利用JavaScript制作一个...