单元选择合并变色示例代码


Posted in Javascript onMay 26, 2014

周末为了解答一个问题,写了一堆代码,功能基本实现,但感觉结构太差了,没太多考虑。一点都不漂亮

<!DOCTYPE HTML> 
<HTML> 
<head> 
<TITLE>The document title</TITLE> 
<meta charset=utf-8> 
<script src="lib/jquery-1.8.1.min.js" type="text/javascript"></script> 
<style type="text/css"> 
table{ 
border-spacing: 0; 
} 
td{ 
height: 50px; 
width: 50px; 
border-spacing: 0; 
} 
.hidden{ 
display: none; 
} 
</style> 
</head> <body> 
<table border="1"> 
<tr id ="r1"> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
<tr id ="r2"> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
</table> 
<p id ='log'></p> 
<button type="button" onclick="combine()">hebing</button> 
<script type="text/javascript"> 
var selectecdlog = []; 
var resultLen = 0; 
var resultBegin = 0; 
var backColor = ['red','green','blue']; // assume 3 rows 1 -red 2 - green 3 - blue 
var resultColor =0; 
$("td").mousedown(function() { 
selectecdlog = []; 
resultColor = backColor[$(this).parent().attr('id').substr(1)-1]; 
$('td').css('background-color', 'white'); 
// ID for tr tag 
//alert($(this).parent().attr('id')); 
//get the column No. 
//alert($(this).index()+1); 
$(this).css('background-color', resultColor); 
selectecdlog.push($(this).attr('id')); 
//alert($(this).attr('id')); 
$("td").mouseup(onMouseUp); 
$("td").mouseover(onMouseOver); 
}) 
function onMouseUp(){ 
/* Act on the event */ 
var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) - parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)))+1; 
var begin =resultBegin= parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) >parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)):parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)); 
for(var i =0; i<resultLen;i++) 
{ 
selectecdlog.push(selectecdlog[0].substr(0,2)+"c"+(resultBegin+i)); 
} 
selectecdlog.shift(); 
$('#log').text(selectecdlog.toString()); 
$("td").unbind('mouseover',onMouseOver); 
$("td").unbind('mouseup',onMouseUp); 
} 
function onMouseOver (argument) { 
var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) - parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)))+1; 
var begin =resultBegin= parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) >parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)):parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)); 
$('td').css('background-color', 'white'); 
for(var i =0; i<len;i++) 
{ 
$('#'+selectecdlog[0].substr(0,2)+"c"+(begin+i)).css('background-color', resultColor); 
} 
//alert( $(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)); 
//$('#'+tdId).css('background-color', 'red'); 
} 
// set id attr for each td 
$("td").each(function(index, val){ 
/* iterate through array or object */ 
$(this).attr('id', $(this).parent().attr('id')+"c"+($(this).index()+1))}); 
//combine cells 
function combine (argument) { 
// body... 
for (var m in selectecdlog) 
{ 
if(m==0) 
{ 
$('#'+selectecdlog[m]).attr('colspan', resultLen); 
$('#'+selectecdlog[m]).css('width',resultLen*50+"px"); 
//$('#'+selectecdlog[m]).css('background-color', 'bule'); 
} 
else{ 
$('#'+selectecdlog[m]).addClass('hidden'); 
} 
} 
} 
</script> 
</body> 
</HTML>
Javascript 相关文章推荐
javascript中&quot;/&quot;运算符常见错误
Oct 13 Javascript
javascript showModalDialog 内跳转页面的问题
Nov 25 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
JavaScript驾驭网页-DOM
Mar 24 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
JsChart组件使用详解
Mar 04 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
layui表格数据重载
Jul 27 Javascript
微信小程序轮播图swiper代码详解
Dec 01 Javascript
jquery实现的一个文章自定义分段显示功能
May 23 #Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
May 23 #Javascript
ie 7/8不支持trim的属性的解决方案
May 23 #Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 #Javascript
jquery重复提交请求的原因浅析
May 23 #Javascript
jquery仿搜索自动联想功能代码
May 23 #Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 #Javascript
You might like
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
php object转数组示例
2014/01/15 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python实现的购物车功能示例
2018/02/11 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
广告业务员岗位职责
2014/02/06 职场文书
主题教育活动总结
2014/05/05 职场文书
机械机修工岗位职责
2014/08/03 职场文书
采购员岗位职责
2015/02/03 职场文书
地震慰问信
2015/02/14 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
队列队形口号
2015/12/25 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python