添加事件 
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. 使用Asset Pipeline管理rails生产环境静态资源实现步骤

    1.    修改项目中指向静态资源文件的链接 a)     访问静态资源文件 <%= stylesheet_link_tag "application", media: &q ...

  2. webview加载url出现空白页面,有些页面没问题

    用webview加载url出现空白页,测试后把百度,Github之类的url传进去都没问题,后来发现是因为布局的原因,因为webview对不同的网站兼容性没有那么强,特别是现在出现的各种前端布局,没法 ...

  3. 基于GStreamer编写Mp3播放器

    一.简介 作者系统为CentOS6,本文在此基础上对Mp3播放器进行开发,需要使用mp3解码库libmad和gstreamer0.10-plugins-ugly,详细步骤如下.   二.操作步骤 1) ...

  4. Luogu 3934 Nephren Ruq Insania

    和Ynoi2016 炸脖龙重题了. BZOJ 5394. 首先是扩展欧拉定理: 一开始傻掉了……递归的层数和区间长度无关……也就是说我们每一次直接暴力递归求解子问题一定不会超过$logP$层,因为当模 ...

  5. scala的map的操作

    1:map和模式匹配的结合 settings.foreach{case (k,v) => set(k,v)} 2:map转成array settings.entrySet().asScala.m ...

  6. pentaho和spark-sql对接

    pentaho可以和hive做对接,所以和spark-sql做对接也是妥妥的.结果让人很失望了啊,我配置了很久都搞不定,最后脑袋突然灵机一动打通了. 1:替换pentaho自带的hive驱动. 路径 ...

  7. LeetCode第70题:爬楼梯

    问题描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...

  8. HDU 2819 Swap (二分匹配+破输出)

    题意:给定上一个01矩阵,让你变成一个对角全是 1 的矩阵. 析:二分匹配,把行和列看成两个集合,用匈牙利算法就可以解决,主要是在输出解,在比赛时一紧张不知道怎么输出了. 输出应该是要把 match[ ...

  9. TestNG入门

    在Eclipse中安装TestNG 打开Eclipse   Help ->Install New Software ,   然后Add   "http://beust.com/ecli ...

  10. Web Api 测试工具

    1.调用POST方法:使用Chrome流量器的PostMan工具. 前端模拟发送数据/调试的好工具:Chrome下的Postman-REST Client 下载地址 https://chrome.go ...