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


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 相关文章推荐
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 Javascript
eclipse如何忽略js文件报错(附图)
Oct 30 Javascript
利用JS判断用户是否上网(连接网络)
Dec 23 Javascript
jQuery动画效果图片轮播特效
Jan 12 Javascript
总结JavaScript设计模式编程中的享元模式使用
May 21 Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
小程序跳转H5页面的方法步骤
Mar 06 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 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
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
基于jquery的滚动新闻列表
2010/06/19 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
Python中itertools模块用法详解
2014/09/25 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python实现的Excel文件读写类
2015/07/30 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
Python异常处理例题整理
2019/07/07 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
绿化先进工作者事迹材料
2014/01/30 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
三八妇女节标语
2014/10/09 职场文书
2014年保卫工作总结
2014/12/05 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Pytest中skip skipif跳过用例详解
2021/06/30 Python
深入理解go slice结构
2021/09/15 Golang