上一个功能有点少,这个V1.0版本是最小集合的。

=================================

双击单元格编辑,可以添加,删除单元格。并且保持相邻单元格不同的背景色。

引用了“My97DatePicker”日历插件。

开始使用

.edtitable tbody tr:nth-child(odd) td,
.edtitable tbody tr:nth-child(odd) th {
background-color: #EEF4F5;
}
.edtitable tbody tr:last-child td{
background-color: #ECE9D8!important;
}

这段css3来实现相邻变色,无奈不支持ie8,故放弃。最后使用jq点击使得相邻不同的背景色。

=================核心JS代码======================

//需要首先通过Jq来解决内容部分奇偶行的背景色不同
$(document).ready(function(){
//找到表格的内容区域中所有的奇数行
//使用even是为了把通过tbody tr返回的所有tr元素中,
//在数组里面下标是偶数的元素返回,因为这些元素,
//实际上才是我们期望的tbody里面的奇数行
$("tbody tr:even").css("background-color","#EEF4F5");
trEdit();//td的点击事件封装成一个函数
});

/*下面兩段开始添加删除行**/
$(document).ready(function() {
$("#addBtn").bind("click", function(){
$("<tr><td></td><td></td><td class='Wdate-col'><input class='Wdate' type='text' onClick='WdatePicker()'/></td><td class='del-col'><a href='javascript:void(0);' class='delBtn'>删除</a></td></tr>").insertBefore(".append-row");
trEdit();
delTr();
$("tbody tr:even").css("background-color","#EEF4F5");
});
delTr();
});

//删除
function delTr(){
$(".delBtn").click(function(){
$(this).parent().parent().remove();
$("tbody tr").css("background-color","#FFF");//先清空,在赋值
$("tbody tr:even").css("background-color","#EEF4F5");
});
}
/*
function even(){
$("tbody tr:even").css("background-color","#ECE9D8");
}*/

//我们需要找到所有的单元格
function trEdit(){
var numTd = $("tbody td").not(".del-col,.Wdate-col");
//给这些单元格注册鼠标点击的事件
numTd.dblclick(function() {
//找到当前鼠标点击的td,this对应的就是响应了click的那个td
var tdObj = $(this);
if (tdObj.children("input").length > 0) {
//当前td中input,不执行click处理
return false;
}
var text = tdObj.html();
//清空td中的内容
tdObj.html("");
//创建一个文本框
//去掉文本框的边框
//设置文本框中的文字字体大小是12px
//使文本框的宽度和td的宽度相同
//设置文本框的背景色
//需要将当前td中的内容放到文本框中
//将文本框插入到td中
var inputObj = $("<input type='text'>").css({"border-width":"0","height":"28px","font-size":"12px","text-align":"center"})
.width(tdObj.width())
.css("background-color",tdObj.css("background-color"))
.val(text).appendTo(tdObj);
//是文本框插入之后就被选中
inputObj.trigger("focus").trigger("select").css("background-color","#CDCC34");
//下面这段是失去焦点
inputObj.blur(function(){
var value=inputObj.val();
inputObj.parent().html(value);//找到input的父元素td,获取当前数值
});
inputObj.click(function() {
return false;
});
//处理文本框上回车和esc按键的操作
inputObj.keyup(function(event){
//获取当前按下键盘的键值
var keycode = event.which;
//处理回车的情况
if (keycode == 13) {
//获取当当前文本框中的内容
var inputtext = $(this).val();
//将td的内容修改成文本框中的内容
tdObj.html(inputtext);
}
//处理esc的情况
if (keycode == 27) {
//将td中的内容还原成text
tdObj.html(text);
}
});
});
}

=======================================

链接地址:http://files.cnblogs.com/files/leshao/EditTable-V1.0.rar

css3实现的链接:http://files.cnblogs.com/files/leshao/EditTable-css3.rar(不支持ie8)

======================

特此感谢雨安合一大侠,天意,员外,午夜等朋友。

EditTable-V1.0--续集的更多相关文章

  1. Git异常:fatal: V1.0 cannot be resolved to branch.

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  2. 自己动手写计算器v1.0

    今天突发奇想,想着看了还几个设计模式了,倒不如写点东西来实践它们.发现计算器这种就比较合适,打算随着设计模式的学习,会对计算器不断的做改进. 包括功能的增加和算法的改进.初学者难免犯错,希望大家不吝指 ...

  3. ASP.NET Boilerplate终于发布v1.0了

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ABP经过2年多的开发,终于发布第一个主要版本了,谨此提醒ABP的使用者. ASP.N ...

  4. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  5. 图像处理工具V1.0

    图像处理工具V1.0(仿彗星图片处理工具.VS2015安装界面)----个人无聊作品 以下是界面: 部分代码一.(摘自网络----加水印代码): public static void ImageWat ...

  6. reGeorg v1.0内网流量转发

    reGeorg v1.0 git Usage $ reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u [-v] Socks server for reGeorg H ...

  7. 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞

      文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...

  8. 屏幕监视专家 v1.0 定时录制屏幕动画发送到指定邮箱

    ScreenWatcher v1.0功能:定时录制屏幕动画发送到指定邮箱,录制的动画为gif,可指定录制多长时间.指定几点直接开始录制,完全后台运行.作者:Bluefish 下载链接: http:// ...

  9. 03-c#入门(简易存款利息计算器v1.0)

    本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈.之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙.SO,自己学完第4章后,决定做一个 ...

  10. C#写爬虫,版本V1.0

    之前看了Sql Server中的基本数据类型,发现image这个类型还是比较特殊的. 于是乎就做了一个将图片以二进制流形式存储的程序http://www.cnblogs.com/JsonZhangAA ...

随机推荐

  1. Java数据结构和算法(十)——二叉树

    接下来我们将会介绍另外一种数据结构——树.二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构.那么为什么要使用树?它有什么优点? 前面我们介绍数组的数据结构,我们知道对于有序 ...

  2. 深入理解 Promise

    自从ES6流行起来,Promise 的使用变得更频繁更广泛了,比如异步请求一般返回一个 Promise 对象,Generator 中 yield 后面一般跟 Promise 对象,ES7中 Async ...

  3. python爬虫(五)_urllib2:Get请求和Post请求

    本篇将介绍urllib2的Get和Post方法,更多内容请参考:python学习指南 urllib2默认只支持HTTP/HTTPS的GET和POST方法 urllib.urlencode() urll ...

  4. Material04 MdCardModule和MdButtonModule综合运用

    设计需求:设计一个登陆页面 1 模块导入 1.1 将MdCardModule和MdButtonModule模块导入到共享模块中 import { NgModule } from '@angular/c ...

  5. OSChinaclient源代码学习(1)--Android与Server的交互

    这里主要针对"综合"这个选项卡下的"资讯"模块为样例.对核心代码进行解读. 准备工作:參考我的另外一篇博客 http://blog.csdn.net/csp27 ...

  6. android手机状态解释,比方android.os.Build.VERSION.SDK

    //BOARD 主板 String phoneInfo = "BOARD: " + android.os.Build.BOARD; phoneInfo += ", BOO ...

  7. Linux 高速操作IOport

    在嵌入式设备中对GPIO的操作是最主要的操作. 一般的做法是写一个单独驱动程序,网上大多数的样例都是这种.事实上linux以下有一个通用的GPIO操作接口.那就是我要介绍的 "/sys/cl ...

  8. java_抽象类

    抽象类1,语法定义抽象类前使用abstract关键字修饰,则该类为抽象类2.应用场景(1)在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法. (2)从多个 ...

  9. TP3.2.3 接入银联支付

    TP3.2.3 接入银联支付 项目接入银联支付的过程, 在此记录下,希望能帮助开发盆友平坑. 银联SKD链接:https://open.unionpay.com/ajweb/product/newPr ...

  10. Linux主机SSH免密设置解析

    为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被 ...