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


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 HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
Jul 15 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
js继承实现方法详解
Dec 16 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
Jul 15 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
Shell编程面试题
2012/05/30 面试题
中学门卫岗位职责
2013/12/26 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
企业文化演讲稿
2014/05/20 职场文书
个人担保书范文
2014/05/20 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
员工离职感谢信
2015/01/22 职场文书
检讨书范文2000字
2015/01/28 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
python中对列表的删除和添加方法详解
2022/02/24 Python