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 相关文章推荐
JavaScript中Math对象使用说明
Jan 16 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
Oct 22 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
jQuery实现复选框批量选择与反选的方法
Jun 17 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
详解JS面向对象编程
Jan 24 Javascript
简单介绍jsonp 使用小结
Jan 27 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
JS实现碰撞检测的方法分析
Jan 19 Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 Javascript
JavaScript实现图片合成下载的示例
Nov 19 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
几种响应式文字详解
2017/05/19 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python线程指南详细介绍
2017/01/05 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
前厅收银主管岗位职责
2014/02/04 职场文书
项目建议书
2015/02/04 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS