Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2530424
  • 博文数量: 245
  • 博客积分: 4125
  • 博客等级: 上校
  • 技术积分: 3113
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-25 23:56
文章分类

全部博文(245)

文章存档

2015年(2)

2014年(26)

2013年(41)

2012年(40)

2011年(134)

2010年(2)

分类: JavaScript

2012-12-18 15:21:28

 Microsoft模型:给element绑定click事件

点击(此处)折叠或打开

  1. element.attachEvent('onclick',doSomething);

  W3C模型:给element绑定click事件

点击(此处)折叠或打开

  1. element.addEventListener('click',doSomething,false);

W3C模型的关键是addEventListener()方法。它有3个参数: the event type, the function to be executed and a boolean (true or false) . 
这个模型的优势在于,我们可以添加任意数量的event listener到某个元素。 

element.addEventListener('click',startDragDrop,false)
element.addEventListener('click',spyOnUser,false)
当element被点击时,绑定到element上的2个函数都会执行。但是w3c模型没有说明哪一个event handler会先执行,所以你不能假设startDragDrop()在spyOnUser()之前执行.

移除 event handler可以使用 removeEventListener() 方法. 
element.removeEventListener('click',spyOnUser,false)


W3C model支持匿名方法:

点击(此处)折叠或打开

  1. element.addEventListener('click',function () {
  2.     this.style.backgroundColor = '#cc0000'
  3. },false)

javascript事件绑定完整例子

点击(此处)折叠或打开


  1. <html>
  2. <head>
  3. <title>javascript事件绑定-支持chrome,ie,ff等</title>
  4. </head>
  5. <body>
  6. <input type="button" id="mybtn" value="javascript事件绑定" />

  7. <script type="text/javascript">
  8. //得到id="mybtn"的元素
  9. var element = document.getElementById("mybtn");

  10. if(window.ActiveXObject){//Microsoft IE浏览器
  11.    //Microsoft模型:给element绑定click事件
  12.    element.attachEvent('onclick',doSomething);
  13. }else{//标准浏览器
  14.     //W3C模型:给element绑定click事件
  15.    element.addEventListener('click',doSomething,false);
  16. }

  17. //自定义的事件处理函数,当事件触发时执行
  18. function doSomething(){
  19.    alert(mybtn.value);
  20. }
  21. </script>
  22. </body>
  23. </html>

阅读(2925) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

甜心1832013-01-15 11:57:00

牛逼!