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


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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
js 操作select和option常用代码整理
Dec 13 Javascript
JavaScript取得键盘按下方向键是哪个的方法
Aug 04 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
JavaScript用二分法查找数据的实例代码
Jun 17 Javascript
vue实现树形菜单效果
Mar 19 Javascript
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
jsonp实现百度下拉框功能的方法分析
May 10 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
Python引用模块和查找模块路径
2016/03/17 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python进程和线程用法知识点总结
2019/05/28 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Pyqt5自适应布局实例
2019/12/13 Python
python 消费 kafka 数据教程
2019/12/21 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
总务岗位职责
2013/11/19 职场文书
医学专业自荐信
2014/06/14 职场文书
推普周活动总结
2014/08/28 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
小学生运动会报道稿
2014/09/12 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
python 中的jieba分词库
2021/11/23 Python