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 相关文章推荐
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 Javascript
VBS通过WMI监视注册表变动的代码
Oct 27 Javascript
JS版的date函数(和PHP的date函数一样)
May 12 Javascript
JavaScript错误处理
Feb 03 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
vue 2.0 购物车小球抛物线的示例代码
Feb 01 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
8个JS的reduce使用实例和reduce操作方式
Oct 05 Javascript
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 全角转半角实现代码
2010/05/16 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
python字典多条件排序方法实例
2014/06/30 Python
Python随机读取文件实现实例
2017/05/25 Python
python实现聚类算法原理
2018/02/12 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
代码实例讲解python3的编码问题
2019/07/08 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
联想德国官网:Lenovo Germany
2018/07/04 全球购物
优秀通讯员事迹材料
2014/01/28 职场文书
应聘英语教师求职信
2014/04/24 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
党员转正意见怎么写
2015/06/03 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
Python matplotlib多个子图绘制整合
2022/04/13 Python