一 创建事件监听器

  开发人员往往使用事件和元素组合来命名事件处理函数。

  创建事件监听器方法:

  • 嵌入式事件处理器即将JavaScript函数赋值给HTML元素属性(不推荐使用:污染HTML;无法应用渐进增强的概念)
  • 传统事件处理:好处有二(容易使用和传统方法创建事件处理器可以使用匿名函数
     window.onload = function(){
    }

    ),可以通过传统方法将对象的相应事件属性赋值为null,删除事件处理器,同样可以检查对象的属性来确认事件监听器的存在

     if(typeof window.onload =='function'){}

    ;坏处也有二(只能指定一个事件处理器容易覆盖现有的事件处理器),可以通过创建一个调用两个所需函数的事件处理函数来缓解

  • W3C事件处理,DOM Level2规范(嵌入和传统事件处理统称为DOM Level 0)之一,事件监听器用addEventListener()方法创建
     window.addEventListener('load'(事件类型的名称,不是window自带的属性onload),init(调用的函数,不带括号),false(事件阶段的布尔值));

    可以多次使用添加多个事件监听器,对应的是删除一个事件监听器removeEventListener(),必须提供与准备撤销的addEventListener()调用相同的参数。,当事件监听器不需要的时候建议删除。

  • IE浏览器事件处理,用attachEvent()和detach()代替addEventListener()和removeEventListener(),只有两个参数:事件和事件发生时调用的函数
    window.attachEvent('onload',init);

二 事件类型

  1.输入设备事件

  输入设备事件:光标驱动事件(不包括键盘)由鼠标、触控板、轨迹球、绘图板及类似设备触发。

  1.1 输入按钮事件

  click(单击)事件:

  • mousedown(鼠标按下)
  • mouseup(鼠标释放)
  • click(单击)

  在一个元素上单击并移动到另一个位置的操作叫做Drag(拖动)。

  双击(dbclick)事件,如果在同一元素上使用dbclick,就不要使用click。

  1.2输入移动事件

  移动光标可能触发的事件:

  • mouseout(鼠标移出)
  • mouseover(鼠标移过)
  • mousemove(鼠标移动):少用,降低网页性能

  1.3键盘事件

  • keydown(按下键)
  • keyup(释放键)
  • keypress(按键)

  1.4浏览器事件

  • load:元素加载时触发

  • unload:页面卸载时触发,常用于创建弹出式窗口的一种方法,但不能阻止用户关闭窗口
  • resize:用户改变窗口大小时触发
  • scroll:在浏览器窗口中滚动
  • copy
  • paste
  • cut

  1.5表单事件

  • reset(无必要,当你使用重置按钮时,可以监视reset事件避免无意重置表单)
  • change
  • select:文本输入域和文本区域中的文本被选中时触发
  • focus
  • blur

三 高级事件处理 

  检查按键

  键和字符的区别:键是指键盘上的物理按键,大部分键可以产生超过一个字符,关键至于Unicode。KeyCode和which属性获得字符的Unicode值,但IE不支持which,可以通过以下方法获得字符:

 var charCode = e.which || e.keyCode;
//或者
var charCode = ( typeof e.which ==='number') ? e.which: e.keyCode;

  使用String对象的fromCharCode()方法获得与字符代码相关的实际字符:

 String.fromCharCode(charCode);

  对于一些特定的情况(游戏或者其他图形界面),字符不重要,关键在于特定的光标键。

  三个特殊键:shiftKey、ctrlkey、altKey。每个键的取值代表该键是否按下的布尔值。

  阻止默认事件行为

  阻止默认事件行为的方法——从事件处理器中返回false。

JavaScript学习心得(七)的更多相关文章

  1. arcgis api for javascript 学习(七) 调用发布地图信息,并将地图属性信息输出到Excel表格---进阶版

    我们在arcgis api for javascript 学习(三)已经学习到了关于调用地图信息进行属性输出的问题,不过通过代码我们实现后会发现还是有一些小瑕疵的,比如我们只能单个数据属性的输出,如果 ...

  2. WGZX:javaScript 学习心得--2

    转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报  分类: UI(2 ...

  3. WGZX:javaScript 学习心得--1

    标签: javascriptiframedreamweaver浏览器htmltable 2008-09-11 10:50 1071人阅读 评论(0) 收藏 举报  分类: UI(21)  1,docu ...

  4. JavaScript学习心得

    javaScript十分的强大,所以自然而然学起来也是不易的,想要掌握它的核心,把它理解透更是不易的,但只要你能够静下心来,耐心的去钻研,学习,还是可以把它给学好的,加油吧! 下面是一些JavaScr ...

  5. JavaScript学习总结(七)——ECMAScript6(ES6)

    一.ECMAScript概要 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通 ...

  6. JavaScript学习心得(十)

    Ajax Ajax是浏览器中使用JavaScript进行服务器后台请求,读取附加信息或者导致服务器响应的过程. Ajax广泛用于从服务器读取数据,并用所得到的数据更新页面,以及向服务器发送数据 Aja ...

  7. JavaScript学习心得(八)

    Cookie是Netscape发明的技术,是动态网站必不可少的部分,用于浏览器请求Web页面的超文本传输协议是一种无状态的协议. 两种方法维护状态:使用会话(session)(使用服务器技术实现,数据 ...

  8. JavaScript学习心得(六)

    函数 对函数参数没有任何类型检查(弱类型),在必要时在函数内加上类型检查(typeof): JavaScript的函数参数无法设置默认值(可以通过检查参数,当为undefined时设置一个值 func ...

  9. JavaScript学习心得(五)

    一时间 1970年1月1日是电脑常用的时间参考点,称为纪元(Epoch)或者UNIX时间戳(UNIX Epoch).JavaScript中的Date对象能够表示1970年1月1日子夜前后1亿天之内的任 ...

随机推荐

  1. AVL树的左旋右旋理解 (转)

    AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多 ...

  2. 16个最棒的jQuery视差滚动效果教程

    今天我们整理了16个最棒的jQuery视差滚动效果教程 , 并附有演示地址,你可以快速的查看教程的效果,或者应用在自己的项目中.希望本文对想要学习或者使用jQuery视差效果的朋友有帮助,慢慢的欣赏吧 ...

  3. cocos2d-x 2.1.4 使用create_project.py脚本创建项目+ant打包项目

    1.创建项目:执行create_project.py脚本,进入Doc界面输入下面的命令: cd D:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\tools\project-cre ...

  4. 388. Longest Absolute File Path

    就是看哪个文件的绝对路径最长,不是看最深,是看最长,跟文件夹名,文件名都有关. \n表示一波,可能存在一个文件,可能只有文件夹,但是我们需要检测. 之后的\t表示层数. 思路是如果当前层数多余已经有的 ...

  5. 怎样克服 JavaScript 框架疲劳?

    [编者按]Tero Parviainen 著有 Build Your Own AngularJS,曾两次组织 Clojure CUP 竞赛,在 Twitter 上有近两千名关注者. 在本文中.Tero ...

  6. Swift 析构器deinit

    析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用.析构器用关键字deinit来标识,类似于构造器用init来标识. 原理: Swift会自动释放不再需要的实例以释放资源.Swift通 ...

  7. UML要点总结(一)

    UML中的事物 UML事物包含结构事物.行为事物.组织事物和辅助事物. 结构事物: 类.接口.用例.协作.活动类.组件和节点. 行为事物: 也称动作事物,交互和状态机. 组织事物: 也称分组事物,仅仅 ...

  8. Mysql参数详解

    1.配置参数 MySQL有两种途径途径了解其的配置参数,一个是MySQL交互模式下的命令SHOW  VARIABLES,一个使用mysqladmin variables 查询. MySQL的配置参数分 ...

  9. delegate和event

    经过查阅资料和自己的理解整理出来的,欢迎大家指教. delegate和event 何时使用: 异步的时候,比如加载完成通知. 需要回调的时候,比如按钮点击.动画播放结束等. 发送事件通知的时候. 比如 ...

  10. iOS网络层架构设计分享

    前言 前些天帮公司做了网络层的重构,当时就想做好了就分享给大家,后来接着做了新版本的需求,现在才有时间整理一下. 之前的网络层使用的是直接拖拽导入项目的方式导入了AF,然后还修改了大量的源码,时隔2年 ...