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移除事件 js绑定事件实例应用
Nov 28 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
js实现文字选中分享功能
Jan 25 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 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设计模式 注册表模式
2012/02/05 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
js一组验证函数
2008/12/20 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
javascript常用功能汇总
2015/07/05 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python的垃圾回收机制详解
2019/08/28 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
详解Python绘图Turtle库
2019/10/12 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python的pygame安装教程详解
2020/02/10 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
函授大学生自我鉴定
2014/02/05 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
邀请函的格式
2015/01/30 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP