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 相关文章推荐
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
jQuery处理图片加载失败的常用方法
Jun 08 Javascript
轻松掌握JavaScript装饰者模式
Aug 27 Javascript
JavaScript登录验证基础教程
Nov 01 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
Dec 14 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
对Layer UI 模块化的用法详解
Sep 26 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 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文档更新介绍
2011/07/22 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
js中new一个对象的过程
2017/02/20 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
django初始化数据库的实例
2018/05/27 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
你应该知道的30个css选择器
2014/03/19 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
vue router 动态路由清除方式
2022/05/25 Vue.js
Redis批量生成数据的实现
2022/06/05 Redis