JavaScript 第九章总结
Handing events
前言
这一章节主要讲了关于 events 的内容,讲了 event 的定义,以及如何用 code 来 react to events。同时,也说明了 JavaScript 中利用 event 编码的特点:它是 asynchronous 的,而不是 linear 的。
谈谈event
定义:Browser 不仅仅 retrieve & display 你的 page, 也不仅仅会 building 这个 page 的 DOM, 而且还会记录一系列的 events,比如一次点击,一次缩放等等...
在这一章讲了三种类型的 event:
- DOM events:比如 click,keypress 等等
- timer events
- network-based events
谈谈 event handler
event handler 的定义:
在 code 的方面,event handler 就是 一个 function,当特定的 event 发生的时候,就会 call 这个 function.
如何使用event handle
- 写一个函数:function pageLoadedHandler(){}
- 然后设置一个 callback 的 event:wind.onload = pageLoadHandler;
DOM event 的 handle 方法
步骤:
- 创建一个 DOM 对象
- assign 一个 handler 在它的一个 event 上。
- 完善 handler 的函数
注意事项
1, 在 DOM 被创建之后,page 中的 element 才能被 JavaScript 中使用,所以每次都需要调用 onload,然后在调用在函数里创建 HTMl 中的 element 对象。
格式:
window.onload = init;
function init() {
var name = document.getElementById("idOfElement")
2, 一个 image 对象具有 src,id 这些 property可以使用,格式为 :image.src = "zero.jpg";
3, eventObj:当多个对象的 handler 的模式一样的时候,可以利用 event object 中的 target 这个 property 来 reuse the handler, 其他的 properties 有 type, timeStamp, keyCode, clientX, clientY等等。
4, getElementByTagName() :可以返回一个 list,类型为 Nodelist 的 Object,可以使用 for() 循环和 getElementByTagName("img") 来为每一个 DOM element 匹配相同的 handler,
书中介绍的一些 events
通过 assign a handler to a property 的方式
- window.onload:在界面 load 完全之后进行 call back
- window.onresize: 在浏览器界面改变尺寸的时候进行 call back.
- object.onclick: 在 user 鼠标点击的时候 call back
- object.onmousemove:在 user 鼠标移动的时候进行 call back.
* object.onmousseover: 在 user 鼠标移过的时候进行 call back
通过 call function 的方式:setTimeout,setInterval
语法:
首先定义一个 handler,然后使用 setTimeout(x,y),其中 x 为 handler, y为进行的时间,单位为毫秒,当到达时间就会 invoke 这个 tied 的 handler
setInterval(x,y),格式与 setTImeout(x,y) 相同,是每隔 y 毫秒就会 invoke 对应的 handler.
其他
- 当 setInterval 的时候,会创建一个 timer object,可以将它传给 clearInterval 来终止 timer.
- setTimeout 实际上是一个 method, 完整的形式为 window.setTimeout.
- 可以为 setTimeout 中设置第三个 argument 为 handler 需要的 argument.
- 这样做的原因是: 没有特定地发生 DOM event. 因此可以先利用 eventObj.target 获得对象,然后把这个对象作为一个 argument 传给 setTimeout.
JavaScript 第九章总结的更多相关文章
- 为什么我要放弃javaScript数据结构与算法(第九章)—— 图
本章中,将学习另外一种非线性数据结构--图.这是学习的最后一种数据结构,后面将学习排序和搜索算法. 第九章 图 图的相关术语 图是网络结构的抽象模型.图是一组由边连接的节点(或顶点).学习图是重要的, ...
- JavaScript DOM编程艺术-学习笔记(第八章、第九章)
第八章 1.小知识点: ①某些浏览器要根据DOCTYPE 来决定页面的呈现模式(标准模式 / 怪异模式--也称兼容模式): 兼容模式意味着浏览器要模仿老一辈的浏览器的怪异行为,来让老站点得到运行,并让 ...
- JavaScript高级程序设计:第九章
第九章 一.使用能力检测 能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.能力检测的基本模式如下: if ( object.propertyInQuestion ) { //使用object ...
- 精通Web Analytics 2.0 (11) 第九章: 新兴分析—社交,移动和视频
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第九章: 新兴分析-社交,移动和视频 网络在过去几年中发生了不可思议的发展变化:从单向对话到双向对话的转变; 由视频,Ajax和 ...
- Knockout应用开发指南 第九章:高级应用举例
原文:Knockout应用开发指南 第九章:高级应用举例 1 Contacts editor 这个例子和微软为演示jQuery Data Linking Proposal例子提供的例子一样的提供的 ...
- jQuery第九章
第九章 jQuery Mobile 一.HTML5.0简介 谈到Web设计,我们经常把Web分为三个层: (1)结构层:(2)表现层:(3)行为层. 对应的技术分别是: (1)HTML:(2)CSS: ...
- 《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag 注:哈哈哈,第九章终于来啦 ...
- 第九章 基于HTTP的功能追加协议
第九章 基于HTTP的功能追加协议 通过在HTTP的基础上添加新的功能来提高性能和功能. 一.消除HTTP瓶颈的SPDY SPDY(SPeeDY)目的是提高HTTP性能,缩短Web页面的加载时间(50 ...
- 第九章:四大组件之Broadcast Receiver
第九章:四大组件之Broadcast Receiver 一.广播的功能和特征 广播的生命周期很短,经过调用对象-->实现onReceive-->结束,整个过程就结束了.从实现的复杂度和 ...
随机推荐
- android 导出apk
一个困扰了几个月的问题在今天得以解决,运动益智可能有点过,能让一个人思路清晰倒是真! 问题描述:本地调试运行及不加密导出apk运行正常,当加密生成apk安装后,从接口返回的数据总是空.尝试过各种配置, ...
- poj 1456 Supermarket - 并查集 - 贪心
题目传送门 传送点I 传送点II 题目大意 有$n$个商品可以销售.每个商品销售会获得一个利润,但也有一个时间限制.每个商品需要1天的时间销售,一天也只能销售一件商品.问最大获利. 考虑将出售每个物品 ...
- Shell脚本,更改Info.plist中的日期等
#!/bin/bashroot_src=$(dirname $(PWD)) bundle_name='RandomDebbot.bundle' target_path=$root_src/ecovac ...
- Cygwin、MinG、MSys区别与联系(转)
转自:https://www.biaodianfu.com/cygwin-ming-msys.html 什么是Cygwin? Cygwin,原Cygnus出品(已被红帽收购),目前是RedHat名下的 ...
- oracle单行函数 之 通用函数
NVL()函数,处理null. Decode()函数,:多数值判断 Decode(数值 \ 列,判断值1,显示值1,判断值2,显示值2)若是判断值不包含的,则显示为空 Decode()函数非常类似程序 ...
- Asp.Net 之 DropDownList的使用
这里不细说,直接上案例 <td style="width: 30px;" align="right"> 年月: </td> <td ...
- P4492 [HAOI2018]苹果树
思路 题目要求的其实就是每种方案的权值之和(因为每种方案的概率相等) 所以自然想到要求所有的边对最终答案的贡献次数 考虑这一条边被经过了多少次,有这个子树内的点数*子树外的点数次,即\(k\times ...
- Ubuntu fcitx CPU占用率很高解决方法
在Ubuntu中,有时候电脑的风扇突然狂装,用 pidstat -u 5 1 命令查看后台应用的资源占用情况,发现fcitx的占用率接近百分之百. 原因是搜狗云输入的问题,关闭后,在用kill命令干掉 ...
- HDU 6096 String(AC自动机+树状数组)
题意 给定 \(n\) 个单词,\(q\) 个询问,每个询问包含两个串 \(s_1,s_2\),询问有多少个单词以 \(s_1\) 为前缀, \(s_2\) 为后缀,前后缀不能重叠. \(1 \leq ...
- 【AI】微软人工智能学习笔记(二)
微软Azure机器学习服务 01|机器学习概述 首先上一张图, 这个图里面的大神是谁我也不清楚反正,但是看起来这句话说得很有哲理就贴出来了. 所以在人工智能领域下面的这个机器学习,到底是一个什么样的概 ...