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实现单继承和多继承的简单方法
Mar 29 Javascript
JS实现匀速运动的代码实例
Nov 29 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
Feb 10 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
Aug 09 Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 Javascript
纯js实现html转pdf的简单实例(推荐)
Feb 16 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
详解Webpack实战之构建 Electron 应用
Dec 25 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
TS 类型收窄教程示例详解
Sep 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
php 操作调试的方法
2012/07/12 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
Javascript玩转继承(三)
2014/05/08 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
js实现楼层导航功能
2017/02/23 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
微信小程序canvas分享海报功能
2019/10/31 Javascript
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python实现小世界网络生成
2019/11/21 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
python3跳出一个循环的实例操作
2020/08/18 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
几个Shell Script面试题
2014/04/18 面试题
程序员岗位职责
2013/11/11 职场文书
九年级科学教学反思
2014/01/29 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
多人股份制合作协议书
2016/03/19 职场文书
python代码实现扫码关注公众号登录的实战
2021/11/01 Python