jQuery (非 HTML5) 編集可能テーブルの実装 code_jquery

WBOY
リリース: 2016-05-16 17:46:53
オリジナル
1130 人が閲覧しました
機能:
セルをクリックして選択します。選択プロセス中に選択したセルを変更するには、Enter キーを押すか、セルを直接ダブルクリックします。選択プロセスでセルがフォーカスを失います。変更された内容が保存されます。

主な実装アイデア:
選択、選択領域の移動などはすべて、jQuery の強力な API に依存して実装されます。編集可能なセルは、セルが選択されると実際に入力フィールドをセルに追加し、データを動的に更新します

ソース コード:
HTML コード:
コードをコピーします コードは次のとおりです。

;tr>




editable simpleInput">ar Thinking




項目 1 項目 3

ジェイソン itzhai
Jason itzhai

/td> ;






コードをコピーします


コードは次のとおりです。


body{ text-shadow:#FFFFFF 1px 1px 1px
}
.editableTable; {
幅: 220px; パディング: 10px; border:1px ソリッド -webkit-border-radius: 6px; -moz-border-radius: 6px; } .editableTable thead{ 背景:#FFFFCC;
td{
背景:#66CCFF;ポインタ;
}
.selectCell{
background:#6699FF; }


JS コード:



>コードをコピー


コードは次のとおりです:

var EdTable = function(){
// Bind events to cells
function initBindGridEvent(){
$("td.editable").unbind();
// Add cell click event
addGridClickEvent();
// Add cell double-click event
addGridDbClickEvent();
// Add keyboard event
addGridKeyPressEvent();
}
// Add a click event to the cell
function addGridClickEvent(){
$("td.simpleInput").bind("click",function(){
$('. simpleInput').each(function(){
$(this).removeClass("selectCell");
});
// Add a selection style to the selected element
$(this) .addClass("selectCell");
});
}
//Add a double-click event to the cell
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();
});
}
// to the cell Add keyboard event
function addGridKeyPressEvent(){
$(document).keyup(function(event){
if(event.keyCode == 37){
// Left Arrow
var selectCell = $(".selectCell").prev()[0];
if(selectCell != undefined){
$(".selectCell").removeClass("selectCell").prev(). addClass("selectCell");
}
} else if(event.keyCode == 38){
// Up arrow
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){
// Right arrow
var selectCell = $(".selectCell").next()[0];
if(selectCell != undefined){
$(".selectCell").removeClass( "selectCell").next().addClass("selectCell");
}
} else if(event.keyCode == 40){
// Down Arrow
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){
//Enter key
var selectCell = $(".selectCell")[0];
if(selectCell != undefined){
$(selectCell) .dblclick();
}
}
});
}
// Save table information after the cell loses focus
function saveEdit(gridCell){
var pnt =$(gridCell).parent();
$(pnt).html($(gridCell).attr("value"));
$(gridCell).remove();
}
return{
initBindGridEvent : initBindGridEvent,
saveEdit : saveEdit
}
}();

Source code download:
EditableTable.rar
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート