首页 > 语言 > JavaScript > 正文

JavaScript通过事件代理高亮显示表格行的方法

2024-05-06 16:20:56
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript通过事件代理高亮显示表格行的方法,涉及javascript事件代理及页面元素的操作技巧,需要的朋友可以参考下

本文实例讲述了JavaScript通过事件代理高亮显示表格行的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>Highlight Rows</title> 
  6. <style type="text/css"> 
  7. table { 
  8. background-color: lightgreen; 
  9. } 
  10. #third { 
  11. background-color: yellow; 
  12. } 
  13. </style> 
  14. </head> 
  15. <body> 
  16. <!-- Demonstrating "Event Delegation" to highlight table' rows  
  17. on mouseover.  
  18. Arguments can be passed via the delegate.  
  19. My site:andrew.dx.am --> 
  20. <table id="thetable" summary="highlight demo"> 
  21. <tr><td>Just one</td><td>.. no another</td></tr> 
  22. <tr><td>Second</td><td>.. no another</td></tr> 
  23. <tr id="third"><td>A third</td><td>.. no another</td></tr> 
  24. <tr><td>Fourth for luck</td><td>.. no another</td></tr> 
  25. </table> 
  26. <script type="text/javascript"> 
  27. var addEvent = function (elem, eventType, func) { 
  28. if ( elem.addEventListener ) 
  29. addEvent = function (elem, eventType, func) { 
  30. elem.addEventListener(eventType, func, false); 
  31. }; 
  32. else if ( elem.attachEvent ) 
  33. addEvent = function (elem, eventType, func) { 
  34. elem.attachEvent('on' + eventType, func); 
  35. }; 
  36. addEvent(elem, eventType, func); 
  37. }; 
  38. var delegateEvent = function (elem, childElems, eventType, func, args) { 
  39. addEvent(elem, eventType, function (e) { 
  40. var evt = e || window.event; 
  41. var elem = evt.target || evt.srcElement; 
  42. if ( elem.nodeName.toLowerCase() == childElems.toLowerCase() ) { 
  43. func(elem, args); 
  44. } 
  45. }); 
  46. }; 
  47. function highlightRows(obj, args) { 
  48. if (args && args.over) { 
  49. obj.prevColour = obj.parentNode.style.backgroundColor; 
  50. obj.parentNode.style.backgroundColor = args.colour; 
  51. if (args.index && obj.title == "") 
  52. obj.title = "Row " + obj.parentNode.rowIndex; 
  53. } else { 
  54. obj.parentNode.style.backgroundColor = ""; 
  55. if (obj.title.indexOf("Row ") + 1) 
  56. obj.title = ""; 
  57. } 
  58. } 
  59. function init() { 
  60. delegateEvent(document.getElementById('thetable'), 'td', 'mouseover', 
  61. highlightRows, {'colour': 'lightblue', 'over': true,  
  62. 'index': true}); 
  63. delegateEvent(document.getElementById('thetable'), 'td', 'mouseout', 
  64. highlightRows, {'over': false}); 
  65. } 
  66. addEvent(window, 'load', init); 
  67. </script> 
  68. </body> 
  69. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选