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 - HTML的request类
Jul 15 Javascript
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
Dec 31 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
详解Angular-Cli中引用第三方库
May 21 Javascript
Vue官网todoMVC示例代码
Jan 29 Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
javascript 写类方式之五
2009/07/05 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python中的print()输出
2019/04/12 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python flask中动态URL规则详解
2019/11/22 Python
Python 音频生成器的实现示例
2019/12/24 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
拾金不昧的表扬信
2014/01/16 职场文书
期中考试后的反思
2014/02/08 职场文书
公司活动方案范文
2014/03/06 职场文书
关于旅游的活动方案
2014/08/15 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
党校个人总结
2015/03/04 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang