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


Posted in Javascript onMay 27, 2015

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

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Highlight Rows</title>
<style type="text/css">
 table {
 background-color: lightgreen;
 }
 #third {
 background-color: yellow;
 }
</style>
</head>
<body>
<!-- Demonstrating "Event Delegation" to highlight table' rows 
 on mouseover. 
 Arguments can be passed via the delegate. 
My site:andrew.dx.am -->
<table id="thetable" summary="highlight demo">
 <tr><td>Just one</td><td>.. no another</td></tr>
 <tr><td>Second</td><td>.. no another</td></tr>
 <tr id="third"><td>A third</td><td>.. no another</td></tr>
 <tr><td>Fourth for luck</td><td>.. no another</td></tr>
</table>
<script type="text/javascript">
var addEvent = function (elem, eventType, func) {
 if ( elem.addEventListener )
 addEvent = function (elem, eventType, func) {
  elem.addEventListener(eventType, func, false);
 };
 else if ( elem.attachEvent )
 addEvent = function (elem, eventType, func) {
  elem.attachEvent('on' + eventType, func);
 };
 addEvent(elem, eventType, func);
};
var delegateEvent = function (elem, childElems, eventType, func, args) {
 addEvent(elem, eventType, function (e) {
 var evt = e || window.event;
 var elem = evt.target || evt.srcElement;
 if ( elem.nodeName.toLowerCase() == childElems.toLowerCase() ) {
  func(elem, args);
 }
 });
};
function highlightRows(obj, args) {
 if (args && args.over) {
 obj.prevColour = obj.parentNode.style.backgroundColor;
 obj.parentNode.style.backgroundColor = args.colour;
 if (args.index && obj.title == "")
  obj.title = "Row " + obj.parentNode.rowIndex;
 } else {
 obj.parentNode.style.backgroundColor = "";
 if (obj.title.indexOf("Row ") + 1)
  obj.title = "";
 }
}
function init() {
 delegateEvent(document.getElementById('thetable'), 'td', 'mouseover',
   highlightRows, {'colour': 'lightblue', 'over': true, 
   'index': true});
 delegateEvent(document.getElementById('thetable'), 'td', 'mouseout',
   highlightRows, {'over': false});
}
addEvent(window, 'load', init);
</script>
</body>
</html>

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

Javascript 相关文章推荐
Javascript下的keyCode键码值表
Apr 10 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
Canvas + JavaScript 制作图片粒子效果
Feb 08 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
jquery预加载图片的方法
May 27 #Javascript
jQuery仿gmail实现fixed布局的方法
May 27 #Javascript
js实现键盘Enter键提交表单的方法
May 27 #Javascript
js实现简单锁屏功能实例
May 27 #Javascript
JS实现简单路由器功能的方法
May 27 #Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 #Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 #Javascript
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
php 设计模式之 工厂模式
2008/12/19 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
Jquery性能优化详解
2014/05/15 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
jQuery实现简单全选框
2020/09/13 jQuery
js实现弹幕墙效果
2020/12/10 Javascript
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
2014村务公开实施方案
2014/02/25 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
空乘英文求职信
2014/04/13 职场文书
房地产端午节活动方案
2014/08/24 职场文书
区域经理岗位职责
2015/02/02 职场文书