`
chaoyi
  • 浏览: 290396 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第二十四章:事件入门

 
阅读更多

 学习要点:
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');
};

 

  • 大小: 74.5 KB
  • 大小: 46.3 KB
分享到:
评论

相关推荐

    WF从入门到精通(1-16章)

    第二章:WORKFLOW运行时 第三章:WORKFLOW实例 第四章:活动及WORKFLOW类型介绍 第五章:WORKFLOW跟踪 第六章:加载和卸载实例 第七章:基本活动的操作 第八章:调用外部方法及工作流 第九章:逻辑流活动 第十章:...

    IOS开发入门经经典

    第1章:iphone开发入门 第2章:窗口与视图 第3章:运算符与表达式 第4章:算法 第5章:选择结构 第6章:循环结构 第7章:函数 第8章:预处理命令 第9章:指针 ...第24章:文件操作 第25章:内存管理

    Code(WF从入门到精通).rar

    第二章:WORKFLOW运行时 第三章:WORKFLOW实例 第四章:活动及WORKFLOW类型介绍 第五章:WORKFLOW跟踪 第六章:加载和卸载实例 第七章:基本活动的操作 第八章:调用外部方法及工作流 第九章:逻辑流活动 第十章:...

    Django_中文教程.rar

    Django book 2.0 的中文翻译。 第一章:介紹Django 第二章: 入门 第三章: 视图和URL配置 第四章:模版 第五章:模型 第六章:Admin 第七章:表单 第八章: 高级视图和URL配置 ...第二十章: 安全

    Django Web框架入门到精通 中文版

    本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。 第一章:介紹Django 第二章 入门 第三章 视图和URL配置 ...第二十章: 安全

    Java基础详解(入门级)

    第二章:数组 11-31 第三章:面向对象程序开収 31-74 第四章:异常机制 74-89 第五章:多线程技术 89-122 第六章:常用类 API 122-139 第七章:集合框架(容器)+其他类对象使用 139-199 第八章:IO 流 199-...

    Apache MINA 2.0 用户指南中英文对照阅读版[带书签]

    第二章:基础知识 第三章:IO 服务 第四章:会话 第五章:过滤器 第六章:传输 第七章:事件处理器 第八章:字节缓存 第九章:编解码器过滤器 第十章:执行者过滤器 第十一章:SSL 过滤器 第十二章:日志过滤器 第十...

    很经典的XML入门教程

    第二章:怎么使用XML 第三章:XML 的语法 第四章:文档类型定义 DTD(Document Type Definition) 第五章:在NetScape 和IE 中的XML 第六章:微软的XML 解释器 第七章:XML DOM 第八章:XSL - The Style Sheet ...

    ACTIONSCRIPT3.0 编程PDF文档

    ACTIONSCRIPT3.0 编程 目录 第1 章: ActionScript3.0 简介 第2 章: ActionScript 快速入门 第3 章: ActionScript 语言及其语法 ...第24 章: 打印 第25 章: 使用外部 API 第26 章: Flash Player 安全性

    djangoBook 中文 v1.0 v2.0 合并美化版 原创

    Django book 1.0, Django book 2.0 美化合并版, 版权归属 http://djangobook.py3k.cn/, 美化合并 by Rogues, http://rogues.download.csdn.net/ 下载正版! Django book 2.0 中文版 ...第二十章:安全

    python django建站教程

    方便自己也方便大家,敬请积极参与翻译! 第一章:介紹Django 第二章 入门 第三章 视图和URL配置 第四章:模版 第五章:模型 第六章:Django站点管理 第七章:表单 第八章 高级视图和URL... 第二十章: 安全

    Djangobook2中文版.

    目 录 1. 贡献者 2. 第一章:介紹Django 3. 第二章:入门 4. 第三章:视图和URL配置 5. 第四章:模版 6. 第五章:模型 7. 第六章:Django站点管理 ...21. 第二十章:安全 22. 本站由VCC使用Django搭建。

    Cocoa.Programming.for.Mac.OS.X,3rd,2008(中文,仅18章).pdf

    第二章:起步 第三章:Objective-C 语言 第四章:内存管理 第五章:Target/Action 第六章:辅助(helper)对象 第七章:Key-Value Coding.Key-Value Observing 第八章:NSArrayController 第九章:NSUndoManager ...

    LabVIEW宝典课件.ppt

    第二章:LabVIEW基本函数第三章:LabVIEW的程序运行结构 第四章:LabVIEW的数据结构及内存优化 第五章:字符串与文件存储 高级篇 第六章:属性节点、方法节点及引用 第七章:高级控件的运用 第八章:文本编程...

    The-Django-Book中文版

    第一章:介紹Django 阅读 01 第二章 入门 阅读 02 第三章 视图和URL配置 阅读 03 第四章:模版 阅读 04 第五章:模型 阅读 05 第六章:Admin 阅读 06 第七章:表单 阅读 07 ...第二十章: 安全 阅读 20

    Android程序员入门

    第二章:下载和安装Eclipse总则 第三章:下载和安装Android SDK 第四章:浏览Android SDK 第五章:Android程序:Hello World 第六章:使用命令行工具盒Android模拟器 第七章:使用Intents和电话拨号盘 第八章:列表...

    STM8从入门到精通V1.0.pdf

    第二章:STM8开发工具 第三章:GPIO 第四章:时钟管理 第五章:STM8中断控制器ITC 第六章:STM8定时器 第七章:通用异步收发器UART 第八章:STM8S模拟/数字转换器ADC 第九章:串行外设接口SP 第十章:IIC总线接口 第...

    LabVIEW宝典课件

    第二章:LabVIEW基本函数 第三章:LabVIEW的程序运行结构 第四章:LabVIEW的数据结构及内存优化 第五章:字符串与文件存储 高级篇 第六章:属性节点、方法节点及引用 第七章:高级控件的运用 第八章:文本编程与...

    compiere 中文说明书

    Compiere 功能参考大全的内容全面,共分 6 大部分,以 24 章共 800 余页的篇幅,带领您循序渐进地掌握 Compiere,完全掌握该系统。 入门必知 第1章:入门操作 第2章:基础设置 ...第24章:流程管理

    编程实践:Java进阶100例

    第二章:MyEclipse的基本使用; 第三章:Java基础语法; 第四章:数组的应用; 第五章:面向对象的Java编辑; 第六章:接口与内部类; 第七章:集合的应用; 第八章:异常和反射; 第九章:初识AWT和Swing; 第十章...

Global site tag (gtag.js) - Google Analytics