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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
jquery validate poshytip 自定义样式
Nov 26 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
ES6数组的扩展详解
Apr 25 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
Python中super函数的用法
2017/11/17 Python
python机器人行走步数问题的解决
2018/01/29 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
python 实现return返回多个值
2019/11/19 Python
Python多线程多进程实例对比解析
2020/03/12 Python
python操作链表的示例代码
2020/09/27 Python
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
运动会入场词100字
2014/02/06 职场文书
12月红领巾广播稿
2014/02/13 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
python 中[0]*2与0*2的区别说明
2021/05/10 Python
python中取整数的几种方法
2021/11/07 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android