1 事件:就是文档或浏览器窗口中发生的一些特定的交互瞬间。
    tips:js和xhtml的交互是通过当用户或浏览器操作网页时发生的事件来处理的。

1.1 事件流:即事件的顺序。
        事件冒泡:事件从事件发生的目标最内部开始触发,向上触发到最外部(document对象)。
        事件捕获:事件捕获正好与冒泡相反。它的事件触发顺序是从最外层的对象(document对象)到最里层的对象。
        DOM事件流:dom同时支持事件捕获和事件冒泡,但事件捕获先发生。
    1.2 事件处理程序/监听器
        定义:为响应一个事件而被调用的函数称为事件处理程序(DOM中叫事件监听器)。
        两种指派方式:1.传统事件处理程序指派方法。(DOM0)      2.现代事件处理程序指派方法。    
       1.传统事件处理程序指派方法。(DOM0):为一个事件指派一个事件处理程序。
           1)在js中指定事件处理程序。
        eg:
              var odiv = document.getElementById("div1");
              odiv.onclick = function(){
            alert("我被点击了");            //事件处理程序的名称必须全部小写。
            }
            tips:1.事件处理程序的名称必须全部小写。
        2.在绑定事件处理程序到事件属性时,只能引用函数的名称,后面不能加括号。若加括号则表示立即执行函数。
        3.不管函数是如何定义的,必须确保在XHTML元素被添加到DOM之前。登记事件处理程序。即js写到后面,保证节点已经加载定义了。

2.现代事件处理程序指派方法。:为一个事件指派多个事件处理程序。    //有兼容性问题。
                1)IE浏览器
        attachEvent()用于将一个事件处理程序绑定到一个事件。
        detachEvent()用于解除事件处理程序的绑定。

[object].attachEvent(“事件处理程序的名称”,函数)
        [object].detachEvent(“事件处理程序的名称”,函数)
                2)DOM          //即是DOM2
        DOM中使用addEventListener()和removeEvenList() 方法完成事件处理程序指派和删除的任务。
            有三个参数   事件的名称,要指派的函数 ,是否处理程序要用在冒泡或捕获阶段。
        第三个参数为true,用在捕获阶段,是则false用在冒泡阶段。
        [object].addEventListener(“事件名称”,函数名,bCapture)
        [object].removeEvenList()(“事件名称”,函数名,bCapture)
        
        ****(重要)兼容性问题的解决:
        if(document.addEventListener){            //DOM
            odiv.addEventListener("click",fnclick1,true);
            }
        else if(document.attachEvent){            //IE
            odiv.attachEvent("onclick",fnclick1)    
            }

2 Event对象
    tips:Event 对象代表事件的状态。
        比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
        事件通常与函数结合使用,函数不会在事件发生前被执行!
    2.1 定位:
        1.ie中:event对象是window对象的一个属性。
        必须如下执行:
               odiv.onclick = function(){
            var oevent =window.event;
        }
        2.DOM中:event对象只能作为仅有的参数传给事件处理程序。
        必须如下执行:
             odiv.onclick = function (oEvent){};
    2.2 属性和方法
        1)ie中event属性和方法:
        2)dom中event属性和方法:
        
3 事件类型:
    1.鼠标事件:click     dbclick    mousedown    mouseout        mouseover    mouseup        mousemove
    2.键盘事件:keydown    keypress        keyup
    3.HTML事件:load     unload    change    scroll    focus    blur

dom事件与event对象总结的更多相关文章

  1. Javascript防冒泡事件与Event对象

    防冒泡 防冒泡用到的就是event的属性和方法 function add2shop(e) { if (!e) var e = window.event; e.cancelBubble = true; ...

  2. javascript事件与event对象的属性

    javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...

  3. 事件的event对象基本解释

    事件流: 描述的是在页面中接受事件的顺序主要分为两种: 事件冒泡.事件捕获 事件event对象:1. type 获取事件类型2. target获取事件目标3. stopPropagation() 阻止 ...

  4. 添加事件及Event对象的兼容写法

    一.事件流 事件流描述的是从页面中接受事件的顺序. IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流 1.事件冒泡 事件冒泡,即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点) ...

  5. DOM 事件深入浅出(二)

    在DOM事件深入浅出(一)中,我主要给大家讲解了不同DOM级别下的事件处理程序,同时介绍了事件冒泡和捕获的触发原理和方法.本文将继续介绍DOM事件中的知识点,主要侧重于DOM事件中Event对象的属性 ...

  6. DOM 事件深入浅出(一)

    在项目开发时,我们时常需要考虑用户在使用产品时产生的各种各样的交互事件,比如鼠标点击事件.敲击键盘事件等.这样的事件行为都是前端DOM事件的组成部分,不同的DOM事件会有不同的触发条件和触发效果.本文 ...

  7. DOM事件对象

    触发DOM上的事件时会产生一个事件对象event. event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息. event对象会传入到事件处理程序中. 一.DOM 中的 ...

  8. JS事件流、DOM事件流、IE事件处理、跨浏览器事件处理、事件对象与类型

    事件的移除 removeEventListener() 第二个参数需要指定要移除的事件句柄,不能是匿名函数,因为无法识别 想要移除成功,那么三个参数必须跟addEventListener中的三个完全一 ...

  9. 深入理解DOM事件机制系列第四篇——事件模拟

    × 目录 [1]引入 [2]模拟机制 [3]自定义事件 前面的话 事件是网页中某个特别的瞬间,经常由用户操作或通过其他浏览器功能来触发.但实际上,也可以使用javascript在任意时刻来触发特定的事 ...

随机推荐

  1. UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果

    上一篇博客介绍了如何将XCode创立的项目提交到Git版本控制,这次就直接做一个图片轮播的展示demo,刚好可以把UIScrollView.UIPageControl.UIImageView这三个控件 ...

  2. Fisher–Yates shuffle 洗牌(shuffle)算法

    今天在敲undersore的源码,数组里面有一个shuffle,把数组随机打乱. _.shuffle = function(obj) { var set = isArrayLike(obj) ? ob ...

  3. node的 thunkify模块说明

    thunkify这种函数其实就是python的decorator方式,对目标方法进行一步步的wrap,但是这种方式和generator结合起来就会威力无穷了,实现自动异步功能. thunkify使用一 ...

  4. 注释声明:TODO HACK XXX FIXME REVIEW

    注释有时候也可以用来给一段代码声明额外的信息.这些声明的格式以单个单词打头并紧跟一个冒号.可以使用的声明如下. TODO: 说明代码还未完成.应当包含下一步要做的事情. HACK: 表明代码实现走了一 ...

  5. VS2013 带命令行参数的调试问题 解决方案

    int main(int argc,char* argv[]) argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数 比如:  ...

  6. Sprint(第十一天11.24)

  7. C#知识点总结系列:4、C#中Monitor和Lock以及区别

    Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...

  8. 插件开发-UI插件开发

    1.新建类库解决方案,引入命名空间,同时引入要添加UI Form的WebPart(在Portal\UILib目录下) 2.继续UFSoft.UBF.UI.Custom.ExtendedPartBase ...

  9. Wiki介绍

    Wiki是一种高效的知识管理系统. 我们可以使用wiki构建自己的个人知识管理系统.

  10. socket了解(转)

    http://blog.chinaunix.net/uid-26000296-id-3758651.html http://blog.csdn.net/mengyafei43/article/deta ...