javascript 添加和移除函数的通用方法


Posted in Javascript onOctober 20, 2009

//添加函数的方法
function addEvent( node, type, listener) {
    if( node.addEventListener ){
        // W3C方法(DOM方法)
        //下面语句中的false意思是用于冒泡阶段,若是true则是用于捕获阶段(IE不支持捕获),所以这里用false是一方面的原因是为了统一
        node.addEventListener( type, listener, false );    
        return true;
    } else if( node.attachEvent ){
        // MSIE方法(IE方法)
        node['e' + type + listener] = listener;
        node[type + listener] = function (){
            node['e' + type + listener](window.event);
        };
        node.attachEvent('on' + type, node[type + listener]);
        return true;
    }
    //如两种方法都不具备则返回false
    return false;
}

//移除函数的方法
function removeEvent( node, type, listener) {
    if( node.addEventListener ){
        node.removeEventListener( type, listener, false );
        return true;
    } else if( node.detachEvent) {
        node.detachEvent('on' + type, listener);
        return true;
    }
    //如两种方法都不具备则返回false
    return false;
}

//添加载入事件的方法如下所示
1.function addLoadEvent(func){
    var oldonload=window.onload;
    if(typeof window.onload!="function"){
        window.onload=func;
    }else{
        window.onload=function(){
            oldonload();
            func();
        }
    }
}
2.//用上面的addEvent方法
    addEvent(window, 'load', fn);

Javascript 相关文章推荐
基于JQuery 滑动与动画的说明介绍
Apr 18 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
input禁止键盘及中文输入,但可以点击
Feb 13 Javascript
jQuery div拖拽用法实例
Jan 14 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
JavaScript实现求最大公共子串的方法
Feb 03 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
JS 用6N±1法求素数 实例教程
Oct 20 #Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
Oct 20 #Javascript
Javascript var变量隐式声明方法
Oct 19 #Javascript
让你的网站可编辑的实现js代码
Oct 19 #Javascript
document.onreadystatechange事件的用法分析
Oct 17 #Javascript
将jQuery应用于login页面的问题及解决
Oct 17 #Javascript
层序遍历在ExtJs的TreePanel中的应用
Oct 16 #Javascript
You might like
PHP数据库操作面向对象的优点
2006/10/09 PHP
php调用mysql存储过程
2007/02/14 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
php防止sql注入简单分析
2015/03/18 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
连接Python程序与MySQL的教程
2015/04/29 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
Python处理Excel文件实例代码
2017/06/20 Python
Java分治归并排序算法实例详解
2017/12/12 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Django添加sitemap的方法示例
2018/08/06 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
保安员岗位职责
2013/11/17 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
运动会跳远广播稿
2014/02/04 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书