DOM--4 响应用户操作和事件(1)
简介##
- 事件:事件并不是以”on”开头的。例如,onclick引用的是一个对象的属性,click才是事件。
- 事件侦听器:当指定的事件发生时会执行的函数或方法。
- 事件注册:为DOM元素的具体事件指定事件侦听器的过程。
- 调用:使用动词“invoke”来描述浏览器在检测到某种操作之后执行相应事件侦听器的情形。类似的术语还可能包括呼叫(called)、激发(fired)、执行(executed)或触发(triggered)等。
事件类型##
对象事件###
对象事件既适用于JavaScript对象(例如window对象),也适用于DOM对象(例如HTMLImageElement对象)
- load(完成页面载入后调用,所有可能会因为图片加载而产生问题; 既适用于window对象,也适用于图像对象)
- error; error事件既适用于window对象,也适用于图像对象
A.addEvent(window, 'load', function() {
var image = document.createElement('IMG');
A.addEvent(image, 'load', function() {
document.body.appendChild(image);
});
A.addEvent(image, 'error', function() {
var message = document.createTextNode('The image failed to load');
document.body.appendChild(message);
});
image.setAttribute('src', 'http://www.hdwallpapersinn.com/wp-content/uploads/2014/08/little_cute_cat_1920x1080.jpg');
});
- resize, 当调整浏览器窗口的大小而导致文档的视图发生改变时才会触发resize事件。
- scroll, 适用于具有overflow:auto样式的元素,并且会在元素滚动期间连续地触发。
鼠标移动事件###
- mouseover
- mousemove
- mouseout
- mousedown; 左右点击都会触发
- mouseup; 左健释放触发,如果先点击后移动到监听区域后释放,就只会触发mouseup;
- click; 监听区域完成完整的左健点击释放才会触发;
- dbclick
键盘事件###
- keydown; 键盘按下后触发,该事件发生后会触发keypress事件;触发一次后会停顿一下,如果键盘还是按下状态,则会连续触发,keypress也是;
- keyup; 键盘释放后触发;
- keypress; 随着keydown事件触发;
表单相关事件###
- submit: (注意监听是放在form元素上的)在表单中的button如果没有设置type='reset', 一般默认为submit;点击后触发submit事件; 默认会动态刷新,在处理函数中使用e.preventDefault()可以阻止;
- reset: (注意监听是放在form元素上的)在表单中点击button设置为type='reset‘的按钮触发;
- blur/focus: 适用于
<label>,<input>,<select>,<textarea>和<button>等表单元素;一般情况下会在处理函数中处理一些判断并使用this.className来修改样式; - change: 适用于
<input>,<select>,<textarea>表单元素; (所以注意如对input用直接设置value的情况下不会触发)- 事件在元素激活状态如对
<input type="radio"> and <input type="checkbox"> - 元素失去焦点并值被改变且未提交时
<select>或<input type="file">触发选择值或上传文件成功时
- 事件在元素激活状态如对
控制事件流和注册事件监听器##
事件流###
在有嵌套关系的元素中监听同一事件,则会产生事件流
- DOM标准中相同的stopPropagation()方法也适用于捕获阶段,即自执行最外面的那个元素
- DOM事件流中哪个事件可以被取消
| 事件 | 可取消 |
|---|---|
| click | yes |
| mousedown | yes |
| mouseup | yes |
| mouseover | yes |
| mousemove | no |
| mouseout | yes |
| load | no |
| unload | no |
| abort | no |
| error | no |
| select | no |
| change | no |
| submit | yes |
| reset | no |
| focus | no |
| blur | no |
| resize | no |
| scroll | no |
- 在一个相同阶段上对对象注册多个事件监听不能确保先后执行顺序,唯一的办法是在一个事件监听器上按顺序调用多个函数
DOM--4 响应用户操作和事件(1)的更多相关文章
- DOM--4 响应用户操作和事件(2)
自定义事件 //旧的方法 //创建 var event = document.createEvent('Event'); //初始化 event.initEvent('build', true, tr ...
- hitTest和pointInside如何响应用户点击事件
hitTest和pointInside如何响应用户点击事件 处理机制 iOS事件处理,首先应该是找到能处理点击事件的视图,然后在找到的这个视图里处理这个点击事件. 处理原理如下: • 当用户点击屏幕时 ...
- JavaScript之DOM操作,事件操作,节点操作
1,DOM操作 1.1 概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...
- 微信小程序开发系列五:微信小程序中如何响应用户输入事件
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- jQuery学习笔记之DOM操作、事件绑定(2)
jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...
- cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)
目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop ...
- jQuery中模拟用户操作
有时为了节省不想手动操作网页,但又想看到用户操作时的效果,可以用到jQuery提供的trigger方法.见下图代码 在不点击按钮时仍然想弹出this.value 我们只需要在后面加上.trigger( ...
- Dom,查找标签和操作标签
Dom,查找标签和操作标签 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 ...
- 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one
jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...
随机推荐
- C#二维数组
数组格式 一维数组: Console.WriteLine("输入班级人数"); int renshu = int.Parse(Console.ReadLine()); ; i &l ...
- 无限轮播的N+2 策略
N张照片把contentsSize设置为N+2个图片的宽度,例子如下,两端填充如图,当处于一端时,且即将进入循环状态的时候,如第二张图,从状态1滑动到状态2,在滑动结束的时候,将当前的位置直接转到状态 ...
- os.walk()
os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. walk()方法语法格式如下: os.walk(top[, topdown=True[, onerror=None[ ...
- 如何让Table中的第一列和第二列的值相乘然后赋值给第三列
因为需求的原因所以这样做,不废话了,直接上代码,我用的GridView绑定的数据,table也一样,因为GridView通过浏览器编译后的代码就是table.下面是aspx页面的Html代码: < ...
- spring整合httpclient
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://w ...
- 用spring+hibernate+struts 项目记录以及常用的用法进等
一.hibernate1. -----BaseDao------ // 容器注入 private SessionFactory sessionFactory; public void setSessi ...
- struts2中一些常用的写法 记录
1.对日期进行处理 Date current = new Date(); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat ...
- python中获取当前日期在当月是第几天
- php 分页查询
get方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- android 入门-本地化语言
打包安装到手机上,改变手机系统语言,你在看看是不是改变了.哇.真的可以.