jQuery(非HTML5)可编辑表格实现代码_Javascript教程-查字典教程网
jQuery(非HTML5)可编辑表格实现代码
jQuery(非HTML5)可编辑表格实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:功能:单击单元格选中,选中过程中使用方向键更换选中的单元格,选中过程中按回车键或者直接双击单元格进入可编辑状态,单元格失去焦点时保存修改的内...

功能:

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

主要实现思路:

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

源代码:

HTML代码:

复制代码 代码如下:

<table>

<thead>

<tr>

<th>Item1</th>

<th>Item2</th>

<th>Item3</th>

</tr>

</thead>

<tbody>

<tr>

<td>arthinking</td>

<td>Jason</td>

<td>itzhai</td>

</tr>

<tr>

<td>arthinking</td>

<td>Jason</td>

<td>itzhai</td>

</tr>

<tr>

<td>arthinking</td>

<td>Jason</td>

<td>itzhai</td>

</tr>

</tbody>

</table>

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("<input type='text' onblur='EdTable.saveEdit(this)'+ width +";height:"+ height +"; padding:0px; margin:0px;' value='"+val+"' >");

$(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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类