jQuery(非HTML5)可编辑表格实现代码
功能:
单击单元格选中,选中过程中使用方向键更换选中的单元格,选中过程中按回车键或者直接双击单元格进入可编辑状态,单元格失去焦点时保存修改的内容。
主要实现思路:
选中,移动选中区域等都是依靠jQuery强大的API进行实现的。而可编辑的单元格实际上是在选中单元格时,在单元格上面添加个input输入域,动态的更新数据
源代码:
HTML代码:
CSS代码:
JS代码:
源代码下载:
EditableTable.rar
单击单元格选中,选中过程中使用方向键更换选中的单元格,选中过程中按回车键或者直接双击单元格进入可编辑状态,单元格失去焦点时保存修改的内容。
主要实现思路:
选中,移动选中区域等都是依靠jQuery强大的API进行实现的。而可编辑的单元格实际上是在选中单元格时,在单元格上面添加个input输入域,动态的更新数据
源代码:
HTML代码:
代码如下:
<table class="editableTable"> <thead> <tr> <th>Item1</th> <th>Item2</th> <th>Item3</th> </tr> </thead> <tbody> <tr> <td class="editable simpleInput">arthinking</td> <td class="editable simpleInput">Jason</td> <td class="editable simpleInput">itzhai</td> </tr> <tr> <td class="editable simpleInput">arthinking</td> <td class="editable simpleInput">Jason</td> <td class="editable simpleInput">itzhai</td> </tr> <tr> <td class="editable simpleInput">arthinking</td> <td class="editable simpleInput">Jason</td> <td class="editable simpleInput">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)' style='width:"+ 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
相关推荐
HSdiana 2020-03-28
行吟阁 2020-02-03
玫瑰小妖 2019-12-23
玫瑰小妖 2019-11-21
pythonclass 2019-11-07
移动开发与培训 2020-08-16
ReunionIsland 2020-08-16
行吟阁 2020-08-09
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...
gufudhn 2020-08-09
swiftwwj 2020-07-05
pythonclass 2020-06-25
nercon 2020-06-14
玫瑰小妖 2020-06-07
pythonclass 2020-06-03
lyg0 2020-05-28
huzijia 2020-05-08
行吟阁 2020-05-11