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 08 Javascript
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
js实现用户输入的小写字母自动转大写字母的方法
Jan 21 Javascript
react-native之ART绘图方法详解
Aug 08 Javascript
JS实现快递单打印功能【推荐】
Jun 21 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 Javascript
vue的滚动条插件实现代码
Sep 07 Javascript
原生js实现3D轮播图
Mar 21 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
学习使用curl采集curl使用方法
2012/01/11 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
php数组指针操作详解
2017/02/14 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
flask中的wtforms使用方法
2018/07/21 Python
解决python 上传图片限制格式问题
2019/10/30 Python
浅谈Python type的使用
2019/11/19 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
python变量的作用域是什么
2020/05/26 Python
华为的Java面试题
2014/03/07 面试题
销售人员中英文自荐信
2013/09/22 职场文书
科技活动周标语
2014/10/08 职场文书
教师党员自我评价范文
2015/03/04 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android