【js中的事件分类】

1.鼠标事件

onclick、ondbclick、onmouseover、onmouseout 等

2.HTML事件:

onload/onunload/onsubmit/onresize/onfocus/onchange/onscroll

3.键盘事件:

1.keydown :键盘按下;

2.keypress :键盘按下后抬起的瞬间;

3.keyup :键盘抬起;

[注意事项]

1.执行顺序 keydown-keypress-keyup

2.keypress只能捕获字母、数字、符号键,而不能捕获功能键。

3.长按时循环执行keydown-keypress;

4.有keydown,不一定有keyup,当长按时焦点失去,不再触发keyup。

5.keypress 区分字母大小写,keydown,keyup不区分。

4..事件因子,当触发一个事件时,该事件将向事件所调用的函数中,默认传入一个餐宿,这个参数就是时间因子,包含了该事件的各种详细信息。

document.οnkeydοwn=function(e){

console.log(e);

}

document.οnkeydοwn=function(){

console.log(window.event)

}

document.οnkeydοwn=function(e){

e= e || window.eventconsole.log(e);

}(兼容写法)

5.如何确定键盘按键?

1.在触发的函数中,接受事件因子e。

2.可以使用e.key直接取到按下的按键字符。(不推荐使用)

3.可以使用 keyCode/which/charCode 取到按键的ASCII码值;

var code= e.keyCode|| e.which || e.charCode (兼容各种浏览器的写法。)

如何确定组合键?

var isAlt=0; isEnt=0;

document.οnkeydοwn=fuction(e){if(e.keycode==18){

isAlt=1;

}if(e.keycode==13){

isEnt=1;

}if(isAlt==1&&isEnt==1){

console.log("同时按下")

}

}

document.οnkeyup=fuction(e){if(e.keycode==18){

isAlt=0;

}if(e.keycode==13){

isEnt=0;

}

}

【DOM0事件模型】

1.内联模型(内联绑定):

将函数名直接作为HTML标签中事件属性的属性值。

缺点:不符合W3C中关于内容与行为分离的基本规范。

2.脚本模型(动态绑定)

通过在js中选定某个节点,然后给节点添加onclick属性,

document.getElementById("jb").onclick =function(){

alert(123);

}

优点: 符合W3C中内容与行为分离的基本规范。

缺点: 同一个节点,只能添加一次同一类事件。如果添加多次,后来者生效。

3.DOM0 共有缺点:通过DOM0绑定的事件,一旦绑定无法取消。

【DOM2事件绑定】

1.添加DOM2事件绑定:

1. IE8之前,使用.attachEvent("onclick",函数);

2. IE8之后,使用.addEventListener("click",函数);

3.传入参数三 :false(默认)表示时间冒泡;传入true表示时间捕获。

2.DOM2绑定的优点:

1.同一节点,可绑定多个同一类事件。

2.使用DOM2事件,可以用特有函数进行事件取消。

3.DOM2取消事件绑定:

1.detachEvent("onclick",函数名): 取消attachEvent绑定的事件。

2.removeEventlistener("click",函数名): 取消addEventlistener绑定的事件。

!!!!注意,如果时间需要取消,那么传入的函数不能是匿名函数,取消时 第二个函数需要传入函数名。

【事件流模型】

1.事件冒泡: 当触发一个节点的事件时,会从当前节点开始,依次触发其祖先节点的同类型事件,直到DOM根节点。

2.事件捕获: 当触发一个节点的事件时,会从DOM根节点开始,依次触发捕获节点的同类型事件,然后再触发冒泡事件。

3.什么时候时间冒泡? 什么时候时间捕获?

当使用addEventlistener 第三个参数设为true,表示事件捕获,

除此之外的所有事件绑定,均为事件冒泡。

4. 阻止事件冒泡的传递:

function stopnextmaopao(e){

e= e||window.Event;if(e.stopPropagation){

e.stopPropagation();//IE 10之后

}else{

e.cancelBubble= true; //IE10及以前

}

}

5.阻止默认行为。

function eventHandler(e) { //防止默认行为

e = e || window.event;if(e.preventDefault) {

e.preventDefault();//IE10之后

} else{

e.returnValue= false; //IE10之前

}

}

java script 6 折线_Java入门第六篇:Java script(js)的事件相关推荐

  1. java邮件接收代码,JavaMail入门第四篇 接收邮件(示例代码)

    上一篇JavaMail入门第三篇 发送邮件中,我们学会了如何用JavaMail API提供的Transport类发送邮件,同样,JavaMail API中也提供了一些专门的类来对邮件的接收进行相关的操 ...

  2. java 读取邮件正文_JavaMail入门第五篇 解析邮件

    上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...

  3. Android JNI入门第六篇——C调用Java

    本篇将介绍在JNI编程中C调用Java实现. ×××地址:http://download.csdn.net/detail/xyz_lmn/4868265 关键代码: java: public clas ...

  4. Android JNI入门第六篇——基本数据类型使用

    转载请标明出处: http://blog.csdn.net/michael1112/article/details/56672288 江东橘子的博客 前面讲到了Java和native数据类型,这里就开 ...

  5. Avalonia跨平台入门第六篇之Grid动态分割

    前面玩耍了ListBox多选,今天在他的基础上对Grid进行动态分割;这个效果其实在Xamarin中已经实现过了;其实都没太大区别;直接看效果吧: 在ListBox中选择了具体的布局后进行Grid布局 ...

  6. WPF入门第六篇 WPF的Binding

    WPF的Binding 在传统的Windows软件中,大部分都是UI驱动程序的模式,也可以说事件驱动程序.WPF作为Winform的升级,它把UI驱动程序彻底改变了,核心回到了数据驱动程序的模式上面, ...

  7. Android入门第七篇之ListView (二)

    Android入门第六篇之ListView (一) ,讲的是如何制作一个具有两行文本的 自定义控件 ,作为ListView的Item的使用方法.这篇接下来也是围绕ListView和Item,更加深入地 ...

  8. 以二进制输出64位类型的数据_Java入门第五课:Java基本数据类型与变量的声明...

    数据类型 基本数据类型 Java有八种基本类型.六种数字类型(四个整数型(默认是int 型),两个浮点型(默认是double 型)),一种字符类型,一种布尔型. Byte.short.int.long ...

  9. R语言入门第六集 实验五:综合应用

    R语言入门第六集 实验五:综合应用 一.资源 [R语言]沈阳地铁数据处理及站间流量统计--R语言第五次实训 lubridate-轻松处理日期时间 数据整理-dplyr包(mutate系列) CEILI ...

最新文章

  1. linux内核支持硬盘,Intel 10nm桌面版还是来了:Linux内核已支持
  2. 构造函数的理解(构造函数与 init 方法)
  3. BZOJ 2959: 长跑 [lct 双连通分量 并查集]
  4. SAP Spartacus baseSite设置的源头 - 路由事件
  5. excel导入linux乱码怎么解决方法,,请大家都来看下,Excel导入有乱码?原因出在哪里?应该怎么解决?...
  6. Mysql 数据库默认值选 ‘‘“ 、Null和Empty String的区别
  7. 使用devops的团队_DevOps与兼职社区团队兼容吗?
  8. 局域网如何通过SSH 2连接上VMware 10虚拟机新装的centOS系统远程登录
  9. XSS-Game level 8
  10. 解决微信小程序开发中wxss中不能用本地图片
  11. 【5分钟 Paper】Deep Reinforcement Learning with Double Q-learning
  12. 正则表达式替换字符串
  13. Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
  14. C++--第8课 - 类中的封装
  15. shiro(三)shiro实战,常见java面试题和答案
  16. installshield 安装包失败问题
  17. 机器学习和人工智能之间的区别
  18. 简单的Android 红外线遥控
  19. 酒店标识的要求不同其设计也不同
  20. pycharm多行注释

热门文章

  1. SpringCloud Alibaba微服务实战(七) - 路由网关(Gateway)全局过滤
  2. Tensorflow会话
  3. LeetCode中等题之在排序数组中查找元素的第一个和最后一个位置
  4. LeetCode简单题之找到所有数组中消失的数字
  5. TVM示例展示 README.md,Makefile,CMakeLists.txt
  6. Tensor基础实践
  7. 微调BERT:序列级和令牌级应用程序
  8. 目标检测中特征融合技术(YOLO v4)(下)
  9. 微信 request 合法域名校验出错
  10. python 把列表或者元组转成集合