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


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 相关文章推荐
来自qq的javascript面试题
Jul 24 Javascript
jquery ui dialog实现弹窗特效的思路及代码
Aug 03 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
JS插件overlib用法实例详解
Dec 26 Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 Javascript
Mvc提交表单的四种方法全程详解
Aug 10 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
Vue组件实现触底判断
Jun 26 Javascript
Vue通过WebSocket建立长连接的实现代码
Nov 05 Javascript
js实现轮播图效果 纯js实现图片自动切换
Aug 09 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
基于mysql的论坛(4)
2006/10/09 PHP
php获得当前的脚本网址
2007/12/10 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php实现加减法验证码代码
2014/02/14 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python实现三壶谜题的示例详解
2020/11/02 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
2014年超市工作总结
2014/11/19 职场文书
离婚律师函范本
2015/05/27 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python