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 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
May 08 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
js实现在网页上简单显示时间的方法
Mar 02 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
AngularJS自定义服务与fliter的混合使用
Nov 24 Javascript
react中的DOM操作实现
Jun 30 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
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python使用chardet判断字符编码
2015/05/09 Python
用Python解决计数原理问题的方法
2016/08/04 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python实现自动化上线脚本的示例
2019/07/01 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python实现自动整理文件的脚本
2020/12/17 Python
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
opencv实现图像几何变换
2021/03/24 Python
金融专业个人求职信
2013/09/22 职场文书
小学新学期教师寄语
2014/01/18 职场文书
2014年幼师工作总结
2014/11/22 职场文书
律政俏佳人观后感
2015/06/09 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers