zoukankan      html  css  js  c++  java
  • js跨浏览器事件对象、事件处理程序

    项目中有时候会不用jquery这么好用的框架,需要自己封装一些事件对象和事件处理程序,像封装AJAX那样;
    这里面考虑最多的还是浏览器的兼容问题,原生js封装如下:
    var EventUtil={
    //节点、事件名、事件处理函数
    addHanler:function(element,type,handler){
    if(element.addEventListener){
    element.addEventListener(type,handler,false);//这里一个参数为false意为在事件冒泡阶段调用事件处理程序,true为事件捕获阶段调用
    }
    else if(element.attachEvent)
    {
    element.attachEvent("on"+type,handler);//IE8及以下只支持事件冒泡
    }
    else{
    element["on"+type]=handler;//DOM0级对每个事件只支持一个事件处理程序
    }
    }
    RemoveHanler:function(element,type,handler){
    if(element.RemoveEventListener){
    element.RemoveEventListener(type,handler,false);
    }
    else if(element.detachEvent)
    {
    element.detachEvent("on"+type,handler);
    }
    else{
    element["on"+type]=null;//移除
    }
    }
    //返回对event对象的引用
    getEvent:function(event){
    return event?event:window.event;
    }
    //返回事件目标
    getTarget:function(event){
    return event.target||envet.srcElement;
    }
    //取消事件默认行为
    preventDefault:function(event){
    if(event.preventDefault){
    event.preventDefault();
    }
    else{
    event.returnVlaue=false;
    }
    }
    //阻止事件流
    stopPropagation:function(event){
    if(event.stopPropagation){
    event.stopPropagation();
    }
    else{
    event.cancleBubble=true;
    }
    }
    }

  • 相关阅读:
    google git的使用方法
    C/C++ 开发库 | C/C++ Development Library
    log4cplus c++开源日志系统
    c++配置类
    Markdown基础语法
    Nhibernate 映射关系,一对多 多对一与多对手在映射文件中的体现。
    Nhibernate refers to an unmapped class nhibernate问题的解决(初学者)
    UICollectionView的使用
    Runloop
    UITableView(转)
  • 原文地址:https://www.cnblogs.com/zoujking/p/4175901.html
Copyright © 2011-2022 走看看