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


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 相关文章推荐
JQuery CSS样式控制 学习笔记
Jul 23 Javascript
ExtJs的Date格式字符代码
Dec 30 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
node.js中的console.warn方法使用说明
Dec 09 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
Mar 26 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
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
解析crontab php自动运行的方法
2013/06/24 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
JS实现简易日历效果
2021/01/25 Javascript
python处理大数字的方法
2015/05/27 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
Python的re模块正则表达式操作
2016/05/25 Python
python实现抖音视频批量下载
2018/06/20 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python银行系统实现源码
2019/10/25 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
python随机模块random使用方法详解
2020/02/14 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
普通党员个人整改措施
2014/10/27 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
Python中常见的导入方式总结
2021/05/06 Python
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers
css弧边选项卡的项目实践
2023/05/07 HTML / CSS