事件绑定函数封装(解决同一个对象的同一个事件绑定不同的函数,后面函数覆盖前面函数的问题)

ie下:obj.attachEvent(事件名称,事件函数);
1.没有捕获
2.事件名称有on
3.事件函数执行的顺序:标准ie 》正序 非标准:ie 》倒序
4.this指向window

标准下:obj.addEventListener(事件名称,时间函数,是否捕获);
1.是否捕获 默认false:冒泡 true:捕获
2.事件名称没有on
3.事件执行顺序:正序
4.this指向触发该事件的对象

function bind(obj,evname,fn){
  if(obj.addEventListener){
    obj.addEventListener(evname,fn,false);
  }else{
    obj.attachEvent(‘on‘ + evname,function(){
      fn.call(obj);
    })
  }
}

function fn1(){
  alert(this);
}
function fn2(){
  alert(2);
}

bind(document,‘click‘,fn1);  //document
bind(document,‘click‘,fn2);  //2

时间: 2024-12-14 18:16:14

事件绑定函数封装(解决同一个对象的同一个事件绑定不同的函数,后面函数覆盖前面函数的问题)的相关文章

c++ 回调函数封装

std::function<void(int a,int b)> ha; //函数封装  当成参数用callback  std::bind(&fun1,this,std::placeholders::_1,std::placeholders::_2)  //函数回调时使用 方便之处:类型安全.

数组练习:各种数组方法的使用&amp;&amp;事件练习:封装兼容性添加、删除事件的函数&amp;&amp;星级评分系统

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery事件重复绑定的快速解决方法

click等事件 解决:使用unbind("click")方法先解除绑定的事件再绑定新事件,即在给对象绑定事件之前先移除该对象上的原有事件 1 $("#test2").unbind('click').click(function() { 2 alert("click解除绑定执行" + k++ + "次"); 3 }); 转自:http://www.cnblogs.com/shiyou00/p/5531049.html

事件节流函数封装层

以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃. 1. window对象的resize.scroll事件 2. 拖拽时的mousemove事件 3. 射击游戏中的mousedown.keydown事件 4. 文字输入.自动完成的keyup事件 实际上对于window的resize事件,实际需求大多为停止改变大小n毫秒后执行后续处理:而其他事件大多的需求是以一定的频率执行后续处理.针对这两种需求就出现了debounce和throttle两种解决

用工厂函数封装对象

工厂函数是在方法中建立一个Object空对象,然后再对此对象添加属性和方法,然后把Object对象返回 <html> <head> <title>工厂函数封装对象</title> <script type="text/javascript"> // 工厂函数模式封装对象 //特点:返回结果为对象的函数,在用工厂函数创建对象的时候,一定要new function fn(nianling){ var obj=new object(

Javascript事件函数传递的event对象参数

Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的元素: 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键) 4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置:(在DOM标准中,这两个属性值都不考虑

jQuery on()方法绑定动态元素的点击事件无响应的解决办法

$('#check_all').on('click' , function(){ alert(1); }); $("#yujinlist").append(html); count++; } 以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的: 支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了.现在主要用on,使用on的时候

自定义DOM事件函数封装

非原生DOM触发,个性化定制的自定义事件. currentTarget(DOM对象):要触发事件的元素节点. type(字符串):触发的事件类型,例如"keydown". bubbles(布尔值):表示事件是否应该冒泡. cancelable(布尔值):表示事件是否可以取消. detail(对象):任意值,保存在 event 对象的 detail 属性中. 1 function customEvent (currentTarget, type, bubbles, cancelable,

Delphi 中的DLL 封装和调用对象技术(刘艺,有截图)

Delphi 中的DLL 封装和调用对象技术本文刊登2003 年10 月份出版的Dr.Dobb's 软件研发第3 期刘 艺摘 要DLL 是一种应用最为广泛的动态链接技术但是由于在DLL 中封装和调用对象受到对象动态绑定机制的限制使得DLL 在封装对象方面有一定的技术难度导致有些Delphi 程序员误以为DLL 只支持封装函数不支持封装对象本文着重介绍了DLL 中封装和调用对象的原理和思路并结合实例给出了多种不同的实现方法关键字动态链接库DLL 对象接口虚方法动态绑定类引用面向对象1 物理封装与动