javascript 方法 / 绑定 解绑事件

很多JS插件的代码开头都是 (function(  一直不太明白    直到看到

 // 事件绑定
 this.bindHandler = (function() {            
     if (window.addEventListener) {// 标准浏览器
          return function(elem, type, handler) {// elem:节点    type:事件类型   handler:事件处理程序
              // 最后一个参数为true:在捕获阶段调用事件处理程序    为false:在冒泡阶段调用事件处理程序
              elem.addEventListener(type, handler, false);
         }
    } else if (window.attachEvent) {// IE浏览器
         return function(elem, type, handler) {
              elem.attachEvent("on" + type, handler);
          }
    }
})();    
    // 事件解除
this.removeHandler = (function() {            
    if (window.removeEventListerner) {// 标准浏览器
        return function(elem, type, handler) {
            elem.removeEventListerner(type, handler, false);
        }
     } else if (window.detachEvent) {// IE浏览器
          return function(elem, type, handler) {
              elem.detachEvent("on" + type, handler);
          }
     }
})();

化简成

 a = (function(){
    return function(b){
        alert(b);
    }
 })();
 
 a(‘$b$‘);

一眼就看明白了  : 调用    function的返回值 也就是闭包函数

时间: 2024-10-06 06:27:37

javascript 方法 / 绑定 解绑事件的相关文章

【JQ】jq动态绑定事件.on()、解绑事件off()

#JQ 绑定与解绑事件的方法的历史演变 1. jquery1.4 及之前的版本,由.click() 或 .bind()方法绑定的事件,不能适用脚本创建的新元素:即是说页面加载完成后,再动态创建的DOM元素并不能响应之前绑定的事件!解绑事件使用.unbind()方法: 旧版本的处理方法是使用.live()方法来代替事件绑定.bind(),使得绑定的事件能适用脚本创建的新元素,从而实现事件的动态绑定:解绑事件使用.unlive()方法: 1 <html> 2 <head> 3 <

JavaScript绑定事件跟解绑事件的兼容代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="button" value="按钮" id="bt"/> <input type=

从零开始学 Web 之 jQuery(六)为元素绑定多个相同事件,解绑事件

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.为元素绑定多个

原生js绑定和解绑事件,兼容IE,FF,chrome

主要是最近项目中用到了原生的js 解绑和绑定 事件  然后今天研究了一下,其实问题不大,不过要注意不要把单词写错了,今天我就找了好久单词写错了. 需求:当鼠标移上去以后,给Select加载元素,接着解除这个事件.贴上代码,这个是可以运行的,兼容 IE FF chrome 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312&qu

Android -- Service绑定解绑和aidl

Service是安卓四大组件之一,先前讲到了Service的生命周期,以及非绑定类型的生命周期的例子,这次来分享一下绑定形式的. 应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder. 绑定是异步的,bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个ServiceConnection的实例并传给b

js中的解绑事件

//解绑事件: /* * 注意:用什么方式绑定事件,就应该用对应的方式解绑事件 * 1.解绑事件 * 对象.on事件名字=事件处理函数--->绑定事件 * 对象.on事件名字=null; * 2.解绑事件 * 对象.addEventListener("没有on的事件类型",命名函数,false);---绑定事件 * 对象.removeEventListener("没有on的事件类型",函数名字,false); * 3.解绑事件 * 对象.attachEvent

219 jQuery事件处理: off() 解绑事件,trigger() 、triggerHandler() 自动触发事件

? 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑.jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语法 演示代码 <body> <div></div> <ul> <li>我们都是好孩子</li> <li>我们都是好孩子<

webapi中注册事件以及解绑事件

注册事件的方式有两种: 1.on + 事件名 特点:同一个元素注册同一个事件多次,后面的会把前面的覆盖 2.addEventListener(event,listener,useCapture); 参数:event:事件名 ;  listener:事件处理函数 : useCapture: 决定事件冒泡(false,默认值)还是事件捕获(true); 特点: 不存在覆盖问题,但是不支持IE6,7,8 解绑注册事件 1.on+事件名: on+事件名 = null; 2.addEventListene

jquery绑定事件,解绑事件

unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件.如果没有参数,则删除所有绑定的事件.你可以将你用bind()注册的自定义事件取消绑定.如果提供了事件类型作为参数,则只删除该类型的绑定事件.如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除.返回值 : jQuery参数 :type (String) : (可选) 事件类型data (Function) : (可选) 要从每个匹配元素的事件中反绑定的事件处理函