zoukankan      html  css  js  c++  java
  • javascript中的事件冒泡和事件捕获

    焦点事件
    onfocus:得到焦点
    onblur:失去焦点

    事件冒泡(和样式无关,结构)
    当一个元素接收到事件的时候,会把他接收到的所有事件传播给他的父级,一直到顶层window

    阻止冒泡:
    当前要阻止冒泡的事件函数中调用
    event.cancelBubble=true; //阻止当前事件的当前对象

    事件捕获:

    绑定事件:
    1.obj.onclick=function(){} //一个对象同一个事件绑定2个函数会产生覆盖
    2.ie:obj.attachEvent('onclick',fn1)
    标准:obj.addEventListener('click',fn1,捕获)
    默认是不捕获,冒泡

    问题:
    ie下attachEvent中的this指向window
    call方法 fn1()==fn1.call() call第一个参数可以改变this指向
    绑定事件的封装:
    function bind(obj,evname,fn){
    if(obj.addEventListener){
    obj.addEventListener(evname,fn,false)
    }else{
    obj.attachEvent('on'+evname,function(){
    fn.call(obj)
    })
    }
    }

    出去冒泡,进来捕获
    事件捕获:
    obj.addEventListener('click',fn,true)

    事件取消:
    1.obj.onclick=null; //赋值取消
    2.ie:obj.dettachEvent(obj,fn)
    标准:obj.removeEventListener(obj,fn,捕获)

  • 相关阅读:
    dart中Map类型详解
    洛谷P1582 倒水(二进制)
    maven依赖 临时转阿里云镜像
    java jdbc 连接数据库
    java 常用类
    java 异常处理
    java 对象 this static 封装
    java 面对对象 内存分析
    团队开发 git
    java 代码块
  • 原文地址:https://www.cnblogs.com/txxt/p/5840359.html
Copyright © 2011-2022 走看看