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 Tab 导航插件 (23个)
Jun 11 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
jQuery对val和atrr("value")赋值的区别介绍
Sep 26 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
JQuery中queue方法用法示例
Jan 31 jQuery
Laravel admin实现消息提醒、播放音频功能
Jul 10 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 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 图像处理类1
2009/06/15 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
php提交post数组参数实例分析
2015/12/17 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
js实现点击烟花特效
2020/10/14 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
小学领导班子对照材料
2014/08/23 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python