添加事件 
IE: attachEvent 
Other: addEventListener

  1. var button = document.getElementById("buttonId");
  2. if(button.addEventListener){
  3. button.addEventListener("click",eventFunction,false);
  4. }else if(button.attachEvent){
  5. button.attachEvent("onclick",eventFunction);
  6. }

删除事件 
IE: detachEvent 
Other: removeEventListener

事件冒泡机制 
IE: 事件从它发生的地方被触发,然后向DOM结构的上层冒泡 
Other: 事件先向下沉入到目标元素,再向上冒泡 
     addEventListener( , ,[true|false])

  • true: 向下沉入时截获事件
  • false: 向上冒泡时截获事件

停止事件冒泡: 
IE: window.event.cancelBubble=false; 
Other: e.stopPropagation();

实验的例子:

  1. function bindEvent() {
  2. var button = document.getElementById("buttonId");
  3. if (button.addEventListener) {
  4. alert("Other browser");
  5. //button.addEventListener("click",showEvent,false);
  6. //button.addEventListener("click",showEvent2,false);
  7. button.addEventListener("click", showEvent, true);
  8. button.addEventListener("click", showEvent2, true);
  9. } else if (button.attachEvent) {
  10. alert("IE browser");
  11. button.attachEvent("onclick", showEvent);
  12. button.attachEvent("onclick", showEvent2);
  13. }
  14. }
  15. function removeEvent() {
  16. var button = document.getElementById("buttonId");
  17. if (button.removeEventListener) {
  18. alert("Other browser");
  19. //button.removeEventListener("click",showEvent,false);
  20. button.removeEventListener("click", showEvent, true);
  21. } else if (button.detachEvent) {
  22. alert("IE browser");
  23. button.detachEvent("onclick", showEvent);
  24. }
  25. }
  26. function showEvent(e) {
  27. if (window.event != undefined) {
  28. window.event.cancelBubble = true;
  29. } else if (e.stopPropagation) {
  30. e.stopPropagation();
  31. }
  32. alert("Event here!");
  33. }
  34. function showEvent2() {
  35. alert("Other event here!");
  36. }
  37. function divEvent() {
  38. alert("Div Event");
  39. }
  1. <div onclick="divEvent()">
  2. <input type="button" id="buttonId" value="showEvent"/>
  3. </div>

键盘事件

  1. window.onload=function(){
  2. //绑定键盘事件
  3. document.onkeydown=showkey;
  4. }
  5. function showkey(e){
  6. var key;
  7. if(window.event)
  8. key= window.event.keyCode;
  9. else
  10. key= e.keyCode;
  11. alert(String.fromCharCode(key));
  12. }

鼠标事件 
获取mouse的位置 
IE: clientX,clientY 
Other: pageX, pageY

    1. document.onmouseover= showPosition;

JS基础学习四:绑定事件的更多相关文章

  1. Node.js基础学习四之注册功能

    前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...

  2. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  3. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  4. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  5. Js为Dom元素绑定事件须知

    为异步加载的Dom 元素绑定事件必须在加载完成之后绑定: $('body').load('LearnClickBinding.ashx');$('a').click(function () { ale ...

  6. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  7. salesforce lightning零基础学习(四) 事件(component events)简单介绍

    lightning component基于事件驱动模型来处理用户界面的交互.这种事件驱动模型和js的事件驱动模型也很相似,可以简单的理解成四部分: 1.事件源:产生事件的地方,可以是页面中的输入框,按 ...

  8. vue学习(四) v-on:事件绑定

    //html <div id="app"> <input type="button" value="ok" v-bind: ...

  9. JS 基础学习随想

    2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...

随机推荐

  1. CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (二)

    发送端配置: 一.配置密钥 1. 主/从服务器之间启用基于密钥的身份验证.登录发送端服务器并用 " ssh-keygen " 命令生成公共或私有的密钥. 2. 使用 " ...

  2. openGL一些概念01

    顶点数据: 顶点数据是一系列顶点的集合. 一个顶点(Vertex)是一个3d坐标的数据的集合. 而顶点数据是用顶点属性(Vertex Attribute)表示的,它可以包含任何我们想用的数据. (但是 ...

  3. Ros学习——导航

    1.导航框架 在总体框架图中可以看到,move_base提供了ROS导航的配置.运行.交互接口,它主要包括两个部分:      (1) 全局路径规划(global planner):根据给定的目标位置 ...

  4. JavaScript问题01 js代码放在header和body的区别

    1 body和header中JavaScript执行的时机 1.1 header中 放在header中的javascript代码会进行预加载(即:在页面加载之前就会进行),所以需调用才执行的脚本或事件 ...

  5. 项目一:第十一天 2、运单waybill快速录入 3、权限demo演示-了解 5、权限模块数据模型 6、基于shiro实现用户认证-登录(重点)

    1. easyui DataGrid行编辑功能 2. 运单waybill快速录入 3. 权限demo演示-了解 4. Apache shiro安全框架概述 5. 权限模块数据模型 6. 基于shiro ...

  6. centos 6.5安装 redis

    版本:redis-2.8.19.tar.gz 检查下面依赖是否安装,如果没有要先安装,不然会有异常. yum install gcc-c++ yum install -y tcl. .获取安装文件 r ...

  7. ZROI2018提高day3t2

    传送门 分析 我们设A[i]表示点i有几个矿,B[i]表示这之中有几个矿是第一次出现,所以点i的贡献即为 (2^B[i]-1)*(2^(A[i]-B[i])) 注意减一的原因是第一次出现的矿应至少有一 ...

  8. 转/keystore和truststore的区别

    keytool是java自带的工具用于产生密钥 keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息. truststore是放信任的证书的一个store. 那他们 ...

  9. SSH (Struts2+Spring3.0+Hibernate3)框架(一) 理论

    典型的J2EE三层结构,分为表现层.中间层(业务逻辑层)和数据服务层.三层体系将业务规则.数据访问及合法性校验等工作放在中间层处理.客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与 ...

  10. HTML5与CSS3基础教程(第8版) PDF扫描版​

    <HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...