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 相关文章推荐
Hutia 的 JS 代码集
Oct 24 Javascript
Jquery 自定义动画概述及示例
Mar 29 Javascript
jQuery瀑布流插件Wookmark使用实例
Apr 02 Javascript
window.location不跳转的问题解决方法
Apr 17 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
一秒学会微信小程序制作table表格
Feb 14 Javascript
微信小程序文章详情页跳转案例详解
Jul 09 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中的类-什么叫类
2006/11/20 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
一段实用的php验证码函数
2016/05/19 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
canvas的神奇用法
2017/02/03 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python中一些不为人知的基础技巧总结
2018/05/19 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
基于python实现简单日历
2018/07/28 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
实习单位接收函
2014/01/11 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
商务英语广告词大全
2014/03/18 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang