【WIP】客户端JavaScript 事件处理
创建: 2017/10/15
| 事件句柄的登陆方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件句柄 的登陆方法 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 删除事件监听器 | target.removeEventListener(type, listener, useCapture); 1. 登陆时候如果是无名函数,不能删 2. 可以删除自己(整个事件?) element.removeEventListener("click", arguments.callee, false); |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件对象 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 参数 | 事件回调的对象函数的参数, 名字任意。一般为e或event |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 获取 | 可以直接在触发的处理里使用event 或者加上参数e(jquery.event) $('sample').click(function(e) { event.stopPropagation(); event.preventDefault(); console.log(event); console.log(e); } |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件种类 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件对象共有的属性 | p412
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 鼠标事件对象的共通属性 | click, dbclick, mousedown, mouseup, mousemove, mouseout, mouseover
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 键盘事件的共通属性 | keydown, keypress, keyup等
注:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件的传播 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件的相 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 取消事件 | 阻止事件的传播
阻止事件的传播与其他同级事件
阻止默认动作
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件监听器内的this | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 事件监听器内的this | 表示登陆该事件的元素对象 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| 改变this指定的对象 | 略 p422 // TODO: 补充这里 |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 向事件监听器添加参数的方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 用无名函数 | 在无名函数里面传递参数 e.addEventListener("click", function(e) { test(e, 想要传递的参数); }, false); function test(e, 想要传递的参数) {...}; |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 用返回函数的函数 | e.addEventListener("click", test(...), false);
function test(想要传递的参数) { |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 自定义事件 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 步骤 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 和默认事件的区别 | event.isTrusted true: 用户产生 false: 开发端产生 |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 自定义事件的用途 | 一旦派发,监听器立即执行。所以和直接执行监听器函数没区别。 但是这样更加面向对象,不用在意接口 |
||||||||||||||||||||||||||||||||||||||||||||||||||
| 间接的实现非同期处理(Promise) | |||||||||||||||||||||||||||||||||||||||||||||||||||
| 通常的回调 |
回调只是注册在运行堆, 实际运行时刻为可执行时间和实际设定开始时间中最先到来的 // 输出 A C B 要想实现期待的顺序 setTimeout(()=>{
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| Promise |
var promise = new Promise(function(resolve, reject) {...});
● 参数 想要执行的参数
● 运行
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| 做一个画图软件 | |||||||||||||||||||||||||||||||||||||||||||||||||||
【WIP】客户端JavaScript 事件处理的更多相关文章
- 【WIP】客户端JavaScript Web Object
创建: 2017/10/11 更新: 2017/10/14 标题加上[WIP],增加[TODO] 更新: 2018/01/22 更改标题 [客户端JavaScript Web Object, UR ...
- 【JavaScript权威指南(第五版)】笔记之第二部分 客户端JavaScript 第13章~第23章
第十三章 Web浏览器中的javascript ① eg:下面两行代码实际上执行的是相同的功能 var answer = 42; window.answer = 42; ③每个window对象 ...
- JavaScript 客户端JavaScript之事件(DOM API 提供模块之一)
具有交互性的JavaScript程序使用的是事件驱动的程序设计模型. 目前使用的有3种完全不同的不兼容的事件处理模型. 1.原始事件模型 (一种简单的事件处理模式) 一般把它看作0级DOM API ...
- JavaScript 客户端JavaScript之 脚本化文档
客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序,脚本化Web页面的内容正是JavaScript存在的理由. 一个文档对象模型或者说DOM就是一个API,它定义了如何访问 ...
- 客户端JavaScript(window、document、element)
一.window对象是所有客户端JavaScript特性和API的主要接入点,用window来引用它. 属性:location属性(引用Location对象,当前显示在窗口的URL).document ...
- JavaScript的进阶之路(七)客户端JavaScript知识点总结
一.客户端JavaScript主要是BOM DOM的操作和js脚本的兼容性.互用性.可访问性.安全性的应用.以及一些框架的引用. 二.BOM:浏览器对象模型 主要介绍window对象 1.定时器:se ...
- 浅谈个人对客户端JavaScript同步、异步、执行顺序等概念的理解
一.同步和异步的概念. 同步:即按代码的顺序执行任务. 在下列代码中,按照同步概念,则是先打印1后打印2. console.log(1); console.log(2); 异步:即执行一个任务的同时执 ...
- JavaScript 客户端JavaScript之脚本化HTTP(通过XMLHttpRequest)
XMLHttpRequest对象的设计目的是为了处理由普通文本或XML组成的响应:但是,一个响应也可能是另外一种类型,如果用户代理(UA)支持这种内容类型的话. 大多数浏览的客户端JavaScri ...
- JavaScript 客户端JavaScript之 Web浏览器的环境
Web浏览器实现的Javascript,通过Web浏览器实现的JavaScript引入了大量可脚本化的对象(1.Web浏览器 2.HTML 3.HTML中的内容) Web浏览器中的Javascrip ...
随机推荐
- tkinter比较常用的组件
1.输入框组件 输入框(Entry)用来输入单行内容,可以方便地向程序传递用户参数.这里通过一个转换摄氏度和华氏度的小程序来演示该组件的使用. import tkinter as tk def btn ...
- Selenium-鼠标操作
有些特殊的系统可能需要模拟键盘或者鼠标的操作才可以 鼠标的操作不仅仅是click()单击操作,还有很多包含在ActionChains类中 context_click(elem) 右击鼠标点击元素ele ...
- 计算机_网络_01_配置IE代理
一.配置代理 1.打开代理设置 打开chrome浏览器设置->高级设置->系统->打开代理设置 2.打开局域网设置 Internet属性->连接->局域网设置 3.配置代 ...
- 【Educational Codeforces Round 38】D. Buy a Ticket 堆优化Dijkstra
题意 给定一张无向图,对每个点$i\in S$求$\min_{j\in S} {2\times d(i,j)+a_j}$ 考虑多源多汇最短路会超时,换个角度考虑每个$j$,如果$j=i$,那么答案为$ ...
- VS2019(Windows+Mac)编辑文件模板
macOS 找到设置中的如图条目 设置如下内容: ============================================================ Copyright (C) ...
- 使用 Anthem.NET 框架的一个调试经历
简介:Anthem 是一个很好用的 Ajax 框架,支持 ASP.NET 1.1, 2.0.由于该框架的所有控件都继承自 ASP.NET 自身的服务器控件,保留了几乎所有这些控件的属性和行为(除了把它 ...
- BZOJ1012:[JSOI2008]最大数
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...
- bzoj 1101 Zap —— 莫比乌斯反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 直接莫比乌斯反演. 代码如下: #include<cstdio> #inc ...
- bzoj 2039 & 洛谷 P1791 人员雇佣 —— 二元关系最小割
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2039 https://www.luogu.org/problemnew/show/P1791 ...
- Poj 1077 eight(BFS+全序列Hash解八数码问题)
一.题意 经典的八数码问题,有人说不做此题人生不完整,哈哈.给出一个含数字1~8和字母x的3 * 3矩阵,如: 1 2 X 3 4 6 7 5 8 ...