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 相关文章推荐
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
jquery mobile changepage的三种传参方法介绍
Sep 13 Javascript
判断文档离浏览器顶部的距离的方法
Jan 08 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
Oct 26 Javascript
js对象的复制继承实例
Jan 10 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
修改jquery中dialog的title属性方法(推荐)
Aug 26 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
Apr 26 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
vue中使用腾讯云Im的示例
Oct 23 Javascript
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
什么是短波收听SWL
2021/03/01 无线电
PHP新手上路(二)
2006/10/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python中实现三目运算的方法
2015/06/21 Python
Python的Django框架中的Context使用
2015/07/15 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
Python探索之自定义实现线程池
2017/10/27 Python
使用python实现ANN
2017/12/20 Python
python简易远程控制单线程版
2018/06/20 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python itertools.product方法代码实例
2020/03/27 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
教师中国梦演讲稿
2014/04/23 职场文书
影子教师研修方案
2014/06/14 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2014年班组工作总结
2014/11/20 职场文书
患者身份识别制度
2015/08/06 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android