> 웹 프론트엔드 > JS 튜토리얼 > jQuery(HTML5가 아닌) 편집 가능한 테이블 구현 code_jquery

jQuery(HTML5가 아닌) 편집 가능한 테이블 구현 code_jquery

WBOY
풀어 주다: 2016-05-16 17:46:53
원래의
1132명이 탐색했습니다.
기능:
선택 과정에서 화살표 키를 사용하여 선택한 셀을 변경하거나 Enter 키를 누르거나 셀을 직접 두 번 클릭하여 선택하세요. 선택 과정에서 셀이 포커스를 잃습니다. 수정된 내용을 저장합니다.

주요 구현 아이디어:
선택 영역 선택, 이동 등은 모두 jQuery의 강력한 API를 사용하여 구현됩니다. 편집 가능한 셀은 실제로 셀이 선택될 때 셀에 입력 필드를 추가하고 데이터를 동적으로 업데이트합니다

소스 코드:
HTML 코드:
코드 복사 코드는 다음과 같습니다.

;tr>
항목1번째>
항목3













/table>


CSS 코드:



코드 복사

코드는 다음과 같습니다.

body{ text-shadow:#FFFFFF 1px 1px 1px } .editableTable { 폭: 220px; 여백: 10px; 경계: 1px #DDEEF6;-webkit-border-radius: 6px; -moz-border-radius: 6px;
}
.editableTable thead{
배경:#FFFFCC;
}
td{
배경:
커서: 포인터
}
.selectCell{
배경:#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 != 정의되지 않음){
$(".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 != 정의되지 않음){
$ (".selectCell").removeClass("selectCell");
$(topCell).addClass("selectCell")
}
} else if(event.keyCode == 39)
// 오른쪽 화살표
var selectCell = $(".selectCell").next()[0]
if(selectCell != undefine){
$(".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 != 정의되지 않음){
$(".selectCell").removeClass("selectCell")
$(topCell).addClass("selectCell")
}
} else if (이벤트 .keyCode == 13){
//키 입력
var selectCell = $(".selectCell")[0]
if(selectCell != undefine){
$(selectCell ) .dblclick();
}
}
});
}
// 셀이 포커스를 잃은 후 테이블 정보 저장
function saveEdit(gridCell){
var pnt =$(gridCell).parent();
$(pnt).html($(gridCell).attr("value"))
$(gridCell).remove();
return{
initBindGridEvent : initBindGridEvent,
saveEdit : saveEdit
}
}()


소스 코드 다운로드
: EditableTable.rar
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
arthinking Jason itzhai
arthinking Jason itzhai
arthinking Jason ;
itzhai