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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
css transform 3D幻灯片特效实现步骤解读
Mar 27 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
Jan 10 Javascript
微信小程序 Buffer缓冲区的详解
Jul 06 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 Javascript
关于ES6尾调用优化的使用
Sep 11 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排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
vue实现登录功能
2020/12/31 Vue.js
python提示No module named images的解决方法
2014/09/29 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
pygame播放音乐的方法
2015/05/19 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
python制作websocket服务器实例分享
2016/11/20 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
财务科长个人对照检查材料
2014/09/18 职场文书
2014年个人售房协议书
2014/10/30 职场文书
2015大学生实训报告
2014/11/05 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
小学毕业感言200字
2015/07/30 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL