html5 在线编辑excel,jQuery(非HTML5)可编辑表格实现代码

功能:

单击单元格选中,选中过程中使用方向键更换选中的单元格,选中过程中按回车键或者直接双击单元格进入可编辑状态,单元格失去焦点时保存修改的内容。

主要实现思路:

选中,移动选中区域等都是依靠jQuery强大的API进行实现的。而可编辑的单元格实际上是在选中单元格时,在单元格上面添加个input输入域,动态的更新数据

源代码:

HTML代码:

Item1Item2Item3

arthinkingJasonitzhaiarthinkingJasonitzhaiarthinkingJasonitzhai

CSS代码:

body{

text-shadow:#FFFFFF 1px 1px 1px;

}

.editableTable{

width: 220px;

padding: 10px;

background-color: #DDEEF6;

border:1px solid #DDEEF6;

-webkit-border-radius: 6px;

-moz-border-radius: 6px;

}

.editableTable thead{

background:#FFFFCC;

}

td{

background:#66CCFF;

cursor:pointer;

}

.selectCell{

background:#6699FF;

}

JS代码:

var EdTable = function(){

// 给单元格绑定事件

function initBindGridEvent(){

$("td.editable").unbind();

// 添加单元格点击事件

addGridClickEvent();

// 添加单元格双击事件

addGridDbClickEvent();

// 添加键盘事件

addGridKeyPressEvent();

}

// 给单元格添加单击事件

function addGridClickEvent(){

$("td.simpleInput").bind("click",function(){

$('.simpleInput').each(function(){

$(this).removeClass("selectCell");

});

// 给选中的元素添加选中样式

$(this).addClass("selectCell");

});

}

//给单元格添加双击事件

function addGridDbClickEvent(){

$("td.simpleInput").bind("dblclick",function(){

$('.simpleInput').each(function(){

$(this).removeClass("selectCell");

});

var val=$(this).html();

var width = $(this).css("width");

var height = $(this).css("height");

$(this).html("");

$(this).children("input").select();

});

}

// 给单元格添加键盘事件

function addGridKeyPressEvent(){

$(document).keyup(function(event){

if(event.keyCode == 37){

// 左箭头

var selectCell = $(".selectCell").prev()[0];

if(selectCell != undefined){

$(".selectCell").removeClass("selectCell").prev().addClass("selectCell");

}

} else if(event.keyCode == 38){

// 上箭头

var col = $(".selectCell").prevAll().length;

var topCell = $(".selectCell").parent("tr").prev().children()[col];

if(topCell != undefined){

$(".selectCell").removeClass("selectCell");

$(topCell).addClass("selectCell");

}

} else if(event.keyCode == 39){

// 右箭头

var selectCell = $(".selectCell").next()[0];

if(selectCell != undefined){

$(".selectCell").removeClass("selectCell").next().addClass("selectCell");

}

} else if(event.keyCode == 40){

// 下箭头

var col = $(".selectCell").prevAll().length;

var topCell = $(".selectCell").parent("tr").next().children()[col];

if(topCell != undefined){

$(".selectCell").removeClass("selectCell");

$(topCell).addClass("selectCell");

}

} else if(event.keyCode == 13){

// 回车键

var selectCell = $(".selectCell")[0];

if(selectCell != undefined){

$(selectCell).dblclick();

}

}

});

}

// 单元格失去焦点后保存表格信息

function saveEdit(gridCell){

var pnt=$(gridCell).parent();

$(pnt).html($(gridCell).attr("value"));

$(gridCell).remove();

}

return{

initBindGridEvent : initBindGridEvent,

saveEdit : saveEdit

}

}();

源代码下载:

EditableTable.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值