Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
(function ($) {
$.fn.jgstEditCell = function (options) {
var editAbleCellIndexList;
var $editTextbox;
var defaults = {
editorClass: "theEditor"
};
var dStart = new Date().getTime();
var opts = $.extend(defaults, options);
this.each(function () {
editAbleCellIndexList = new Array();
$(this).find("tr:first th").each(function () {
if ($(this).attr("editAble") == "true") {
editAbleCellIndexList.push($(this).index());
}
});
/*
for (i = 0; i < editAbleCellIndexList.length; i++) {
$(this).find("tr:not(:first) td:nth-child(" + (editAbleCellIndexList[i]+1) + ")").bind("click", CellClicked);
}
*/
$(this).find("tr:not(:first)").each(function () {
var $theRowCells = $(this).children();
for (i = 0; i < editAbleCellIndexList.length; i++) {
$($theRowCells.get(editAbleCellIndexList[i])).bind("click", CellClicked)
.bind("keydown", function (event) {
if (event.keyCode == 13) {
var newVal = event.srcElement.value;
var $oCell = $(event.srcElement).parent();
var cellIndex = $oCell.index();
var $nextCell = $oCell.parent().next();
if ($nextCell.length == 0) {
$oCell.text($editTextbox.val());
$editTextbox.hide();
}
else {
$nextCell.children().get(cellIndex).click();
}
return false;
} else if (event.keyCode == 37) {
/*
var newVal = event.srcElement.value;
var txtRange = event.srcElement.createTextRange();
var dotIndex = newVal.indexOf(".");
alert(txtRange);
*/
}
});
}
});
$editTextbox = $("<input type=\"text\" class=\"editTextbox\" />");
//$("#msg").text(new Date().getTime() - dStart);
});
function CellClicked(event) {
if (event.srcElement.tagName == "TD" && $(event.srcElement).find("input").length == 0) {
//原始单元格编辑框内容
var oText = "";
//原始单元格对象
var $oTd = null;
if ($editTextbox.parent().length > 0 && $editTextbox.parent().get(0).tagName == "TD") {
//取上一单元格信息
oText = $editTextbox.val();
$oTd = $editTextbox.parent();
}
//当前单元格
$cell = $(event.srcElement);
//将当前单元格的值赋给编辑框
$editTextbox.val($cell.text());
//把编辑框插入当前单元格
$cell.empty().append($editTextbox);
//选中编辑框中文本
$editTextbox.show().focus().select();
//还原上一单元格内容
if ($oTd != null) {
//内容不需要更新,直接还原内容
$oTd.text(oText);
}
}
}
};
})(jQuery);