js中怎么绑定事件

来源:互联网 发布:淘宝网儿童帽子 编辑:程序博客网 时间:2024/05/02 11:49
我们想用两个window.onload的时候,起作用的其实是最后一个。就和变量一个道理,如果写  var a=5;   a=9;  最后a是9;同学说,可以写到一个window.onload里面,但是实战项目中,我们都是分工合作的,每个人都想用自己的window.onload,这个时候就需要用到事件绑定了。
  1. <script>
  2. window.onload=function ()
  3. {
  4. alert('a');
  5. };
  6. window.onload=function ()
  7. {
  8. alert('b');
  9. };
  10. </script>
lIE方式
lattachEvent(事件名称函数),绑定事件处理函数
ldetachEvent(事件名称函数),解除绑定
lDOM方式
laddEventListener(事件名称,函数捕获)
lremoveEventListener(事件名称函数捕获)

下面我们看一个小例子,如何进行事件绑定:
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>无标题文档</title>
  6. <script>
  7. window.onload=function ()
  8. {
  9. var oBtn=document.getElementById('btn1');
  10. //attachEvent(事件名, 函数)
  11. //IE
  12. /*
  13. oBtn.attachEvent('onclick', function ()
  14. {
  15. alert('a');
  16. });
  17. oBtn.attachEvent('onclick', function ()
  18. {
  19. alert('b');
  20. });
  21. */
  22. //FF
  23. //addEventListener(事件名, 函数, false)
  24. oBtn.addEventListener('click', function ()
  25. {
  26. alert('a');
  27. }, false);
  28. oBtn.addEventListener('click', function ()
  29. {
  30. alert('b');
  31. }, false);
  32. /*
  33. oBtn.onclick=function ()
  34. {
  35. alert('a');
  36. };
  37. oBtn.onclick=function ()
  38. {
  39. alert('b');
  40. };*/
  41. };
  42. </script>
  43. </head>
  44. <body>
  45. <input id="btn1" type="button" value="按钮" />
  46. </body>
  47. </html>
js中好东西大都不兼容,我们的兼容写法:
  1. <script>
  2. window.onload=function ()
  3. {
  4. var oBtn=document.getElementById('btn1');
  5. if(oBtn.attachEvent)
  6. {
  7. oBtn.attachEvent('onclick', function ()
  8. {
  9. alert('a');
  10. });
  11. oBtn.attachEvent('onclick', function ()
  12. {
  13. alert('b');
  14. });
  15. }
  16. else
  17. {
  18. oBtn.addEventListener('click', function ()
  19. {
  20. alert('a');
  21. }, false);
  22. oBtn.addEventListener('click', function ()
  23. {
  24. alert('b');
  25. }, false);
  26. }
  27. };
  28. </script>
这个比较常用,我们封装成函数:
  1. <script>
  2. function myAddEvent(obj, ev, fn)
  3. {
  4. if(obj.attachEvent)
  5. {
  6. obj.attachEvent('on'+ev, fn);
  7. }
  8. else
  9. {
  10. obj.addEventListener(ev, fn, false);
  11. }
  12. }
  13. window.onload=function ()
  14. {
  15. var oBtn=document.getElementById('btn1');
  16. myAddEvent(oBtn, 'click', function (){
  17. alert('a');
  18. });
  19. myAddEvent(oBtn, 'click', function (){
  20. alert('b');
  21. });
  22. };
  23. </script>

回到之前的问题,我们想用两个window.onload:

  1. <script>
  2. function myAddEvent(obj, ev, fn)
  3. {
  4. if(obj.attachEvent)
  5. {
  6. obj.attachEvent('on'+ev, fn);
  7. }
  8. else
  9. {
  10. obj.addEventListener(ev, fn, false);
  11. }
  12. }
  13. myAddEvent(window,'load',function ()
  14. {
  15. alert('a');
  16. });
  17. myAddEvent(window,'load',function ()
  18. {
  19. alert('b');
  20. });
  21. </script>
0 0
原创粉丝点击