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


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 相关文章推荐
js滚动条回到顶部的代码
Dec 06 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
原生js和css实现图片轮播效果
Feb 07 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
JavaScript函数绑定用法实例分析
Nov 14 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
2种在vue项目中使用百度地图的简单方法
Sep 28 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
vscode调试node.js的实现方法
Mar 22 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基础知识:函数基础知识
2006/12/13 PHP
php 验证码实例代码
2010/06/01 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
numpy中索引和切片详解
2017/12/15 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
详解python with 上下文管理器
2020/09/02 Python
python切割图片的示例
2020/11/12 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
RIP版本1跟版本2的区别
2013/12/30 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
关于人生的感言
2014/01/17 职场文书
岗位安全生产责任书
2014/07/28 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL