zoukankan      html  css  js  c++  java
  • 事件碎碎念

    事件分为:

    1、原始事件或输入事件 与 语义事件

    • 输入事件又包括: 鼠标事件 或 键盘事件:

    2、与设备有关的和与设备无关的事件

    DOM 0级

    • onclick事件可以看着一个设备无关的事件,因为他并不依赖鼠标, 表单控件和超链接的键盘激活也会触发此事件

    • 可以显示调用事件句柄, 但是不是模拟事件发生时的真正状况, 而只是执行句柄函数而已。 如:

    • 调用form上的document.myform.onsubmit(); 如果onsubmit函数里面没有form.submit()的话, 就不会触发表单提交

    • 事件句柄触发时,作为发生事件元素的方法调用,在函数中,关键字this指向发生事件的元素;

    DOM2级—— 向后兼容0级

    • 事件分为三个阶段: 捕获、目标节点触发、 冒泡

    • 阻止冒泡: e.stopPropagation()

    • 阻止默认行为: 默认行为在事件第三个阶段完成后才执行, 可使用e.preventDefault()阻止

    • 可以为特定对象的特定类型事件注册任意多个处理器函数

    • DOM标准不确定调用一个对象的事件处理函数的顺序, 所以不认为他们是以注册的顺序调用

    • 如果在同一个元素上多次注册了同一个处理函数, 那么第一次注册后的所有注册都将被忽略

    • e.currentTarget VS e.target <=> 当前正在处理的节点 VS 发生事件的节点

    IE的事件模型【4、5、5.5、6】—— 介于0级到2级之间

    • 使用attachEvent, 只支持冒泡阶段

    • 回调函数中this指向window

    • 允许同一个事件句柄函数注册多次, 且事件发生的时候调用多次

    • e.srcElement: 发生事件的节点

    • e.cancelBubble=true,可以阻止当前事件进一步冒泡到包容层次的元素

    • e.returnValue=false 阻止默认行为

    按键事件 【keydown、 keypress、 keyup】

    • 在2级的DOM事件模型中没有标准化, 且不同浏览器处理的方式也有所不同

    • 典型的按键会按序产生: keydown-> keypress –> keyup, 按键一直按下时,可能触发多个keypress(不同的操作系统和浏览器可能会有所不同, 实际在chrome中keydown、和keypress都会多次触发)

    • 在IE中, 只有当按键有一个ASCII码的时候, 即当它是一个可打印字符或者控制字符的时候, keypress才会发生, 同时IE也会认为Alt按键组合是无法打印的,所以也不会产生keypress事件

    • 不能打印的功能按键,如Backspace、Enter、Escape、 方向键、 PageUp、 PageDown、F1到F12

    • keydown事件对于功能案件来说是最有用的, 而keypress事件对于可打印案件来说是最有用的

    • 不同的浏览器发送的keyCode、charCode等也有不同, 一般情况keyCode存储较低层的虚拟按键码并和keydown事件一起发送, charCode存储了可打印的字符编码和keypress一起发送, 如果一个功能按键产生了keypress事件, 那么keyCode是0(firefox中), 另外在IE中只有一个keyCode属性,当keydown触发时他代码虚拟按键码,keypress触发时,代表字符码

    • 可使用 String.fromCharCode(‘0x57’)来将字符码转换为字符

    判断特性

    判断DOM标准的方法: document.implementation.hasFeature(‘Events’, ‘2.0’)

    更多请参考

    http://blog.chinaunix.net/uid-26672038-id-3956106.html

  • 相关阅读:
    HTTP学习笔记(1)ULR语法
    wsdl地址如何在远程服务器上查看源码?
    java线程详解(三)
    java线程详解(二)
    java线程详解(一)
    java中this用法总结
    Linux运行python程序
    如何获取到Java对象的地址
    IDEA 远程调试
    linux环境中mysql默认端口3306无法连接问题排查
  • 原文地址:https://www.cnblogs.com/mininice/p/3876302.html
Copyright © 2011-2022 走看看