事件绑定兼容函数

  来源《JavaScript高级程序设计》

  代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5     <style type="text/css">
 6
 7     </style>
 8     <script type="text/javascript">
 9         var EventUtil = {
10             addHandler:function(element,type,handler){
11                 if(element.addEventListener){//现代浏览器,作用域是在其所属元素的作用域内
12                     element.addEventListener(type,handler,false);
13                 }
14                 else if(element.attachEvent){//IE8及其以下,作用域是全局作用域
15                     element.attachEvent("on"+type,handler);
16                 }
17                 else{//DOM2级方法,作用域在其所属的元素的作用域内
18                     element["on"+type] = handler;
19                 }
20             },
21             removeHandler:function(element,type,handler){
22                 if(element.removeEventListener){
23                     element.removeEventListener(type,handler,false);
24                 }
25                 else if(element.detachEvent){
26                     element.detachEvent("on"+type,handler);
27                 }
28                 else{
29                     element["on"+type] = null;
30                 }
31             }
32         };
33         function handler(){
34             alert(this);
35         }
36         window.onload = function(){//使用例子
37             var btn = document.getElementById("btn");
38             EventUtil.addHandler(btn,"click",handler);
39         }
40     </script>
41 </head>
42 <body>
43     <input type="button" value="点击" id="btn">
44 </body>
45 </html>
时间: 2024-10-15 10:53:40

事件绑定兼容函数的相关文章

IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素

IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素. attachEvent(type,listener); listener函数中的this不是指向执行当前事件的dom而是window切记,感觉这一点IE做的太奇怪了!

jquery事件之事件处理函数

一.事件处理 方法名 说明 语法 (events 事件类型,data数据,handler 事件处理函数,selector 选择器) Bind( 为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数.没用on关键字 jQueryObject.bind( events [, data ], handler ) One 为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数.只绑定一次 jQueryObject.one( events [, data ], handler 

on()的多事件绑定

之前学的鼠标事件,表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理.翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个"on"方法来实现的.jQuery on()方法是官方推荐的绑定事件的一个方法. 基本用法:.on( events ,[ selector ] ,[ data ] ) 最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同 $("#elem").click(function(){}) //

jquery几种事件绑定方式的比较

---恢复内容开始--- 比较和联系: 1.bind()函数只能针对已经存在的元素进行事件的设置:但是live(),on(),delegate()均支持未来新添加元素的事件设置: 2.bind()函数在jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以 用来代替live()函数,live()函数在1.9版本已经删除: 3.live()函数和delegate()函数两者类似,但是live()函数在执行

关于jQuery事件绑定

转自:http://www.cnblogs.com/gaojun/p/3497582.html html: <a href="#" onclick="addBtn()">addBtn</a> <div id="mDiv"> <button class="cBtn" onclick="alert(11111)">button1</button> &l

jQuery三种事件绑定方式.bind(),.live(),.delegate()

.bind(), .live(), 和 .delegate()之间的区别并不明显.但是理解它们的不同之处有助于写出更简洁的代码,并防止我们的交互程序中出现没有预料到的bug. 基础 DOM树 首先,图形化的HTML文档能帮助我们更好的理解.一个简单的HTML页面看起来应该像这样 事件冒泡(也称作事件传递)(Event bubbling aka event propagation) 点击一个链接,触发绑定在链接元素上的 click 事件,进而触发绑定到这个元素的click事件的函数. 1 $('a

jquery 事件- 绑定与解绑

一.on() 的多事件绑定 $("#elem").on("mouseover mouseout",function(){ }); //多个事件绑定一个函数 $("#elem").on({ //多个事件绑定不同函数 mouseover:function(){}, mouseout:function(){} }); <div class="left"> <p class="aaron">

live(),bind(),delegate()等事件绑定方法的区别及应用解析

1 首先bind()方法是最直观的,但是也是弊端最大的. $('a').bind('click',function(){alert('that tickles!')}) 这和事件冒泡有直接关系,当我们点击了<a></a>标签时,会立马执行alert,但与此同时,click()事件会接着向DOM树的根方向传播,广播到父元素,由父元素向上到每个祖先元素,只要是它的某个后代元素上的click()事件被触发,那么整个dom树都会牵一发而动全身.所以对未来元素的绑定不能用bind. 2 li

jQuery-3.事件篇---事件绑定与解绑

on()的多事件绑定 之前学的鼠标事件,表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理.翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个"on"方法来实现的.jQuery on()方法是官方推荐的绑定事件的一个方法. 基本用法:.on( events ,[ selector ] ,[ data ] ) 最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同 $("#elem").click(funct