JS实现即点即编辑功能

     以前在网上都看到过类似的功能,不过没自己想要实现过,这次刚好做静态页面中有这样的一个需求,就试着自己做做看,做完发现也不是什么很难的事情。

    效果如图所示:

    代码分享

 

<html>
<head>
<title></title>
<script LANGUAGE="JavaScript"> 
<!--
var globalLineId_1 = 1;
var endLineId_1 = 5;

var globalLineId_2 = 1;
var endLineId_2 = 5;

var globalLineId_3 = 1;
var endLineId_3 = 5;

var currTab = 1;
function switchShow(isWrite,lineId, tabId){
	var inputText = document.getElementById("inputText_"+tabId+"_"+lineId);
	var inputDiv = document.getElementById("inputDiv_"+tabId+"_"+lineId);
	var inputContentDiv = document.getElementById("inputContentDiv_"+tabId+"_"+lineId);
	var inputContent = document.getElementById("inputContent");
	var inputTd = document.getElementById("inputTd_"+tabId+"_"+lineId);

	eval("globalLineId_"+tabId+"=lineId");
	currTab = tabId;

	if (isWrite){
		inputText.value=inputDiv.innerText
		inputDiv.style.display="none";
		inputText.style.display="block";
		inputContent.innerText = inputContentDiv.innerText;
		inputText.focus();

		if (eval("globalLineId_"+tabId) == eval("endLineId_"+tabId)){
			addNewRow();
		}
	}else{
		inputDiv.innerText=inputText.value;
		inputDiv.style.display="block";
		inputText.style.display="none";
	}
}

function addNewRow(){
	eval("endLineId_"+currTab+"++");
	var currEndLineId = eval("endLineId_"+currTab);
	var inputTab = document.getElementById("inputTab_" + currTab);
	var newTr = inputTab.insertRow();
	var newTd = newTr.insertCell();
	newTd.id = "inputTd_"+currTab+"_"+currEndLineId;
	newTd.style.height = "22px";
	newTd.style.borderBottom = "solid 1px #000";
	newTd.innerHTML = "<div id='inputDiv_"+currTab+"_"+currEndLineId+"' style='padding-left:3px;'> </div>" +
	"<input id='inputText_"+currTab+"_"+currEndLineId+"' οnblur='switchShow(false,"+currEndLineId+", "+currTab+");' type='text' class='inputmess' style='width:100%; display:none'>" +
	"<div id='inputContentDiv_"+currTab+"_"+currEndLineId+"' style='display:none'></div>";

	newTd.onclick = Function("switchShow(true, "+currEndLineId+", "+currTab+")");
}

function saveContent(){
	var inputContentDiv = document.getElementById("inputContentDiv_"+currTab+"_"+eval("globalLineId_"+currTab));
	var inputContent = document.getElementById("inputContent");
	if(inputContentDiv !=null){
		inputContentDiv.innerText = inputContent.innerText;
	}
}

function deleteItem(){
	var inputTd = document.getElementById("inputTd_"+currTab+"_"+eval("globalLineId_"+currTab));
	var inputTab = document.getElementById("inputTab_"+currTab);
	var inputRows = inputTab.rows;
	var inputCells ;
	var rowsLength = inputRows.length;
	if (inputTd!=null){
		for(i=1; i <rowsLength; i++){
			inputCells = inputRows[i].getElementsByTagName("td");
			if (inputCells[0].id=="inputTd_"+currTab+"_"+eval("globalLineId_"+currTab)){
				if (confirm("确认要删除吗?")){
					inputTab.deleteRow(inputRows[i].rowIndex);
					if (rowsLength-1<6){
						addNewRow();
					}
					return;
				}
			}
		}
	}else{
		alert("请选择再删除");
	}

}
//--> 
</script>
</head>

<body leftMargin="0" topMargin="1" marginwidth="0" marginheight="0"style="overflow: auto">
<table width="100%" cellSpacing="0" cellPadding="0" border="0">
	<tr height="30px">
		<td></td>
	</tr>
	<tr valign="top" height="300px;">
		<td width="50%" align="right">
		<table cellSpacing="0" cellPadding="0" width="88%" align="center">
			<tr>
				<td width="30%" align="center" valign="top">
				<div style="height: 130px; width: 100%; overflow-y: scroll; border: 1px solid #000;">
				<table id="inputTab_1" cellSpacing="0" cellPadding="0" width="100%" align="center" style="margin-top: 0px">
					<tr>
						<td	style="padding-left: 5px; text-align: left; background-color: #EAEBDB; height: 25px; border-bottom: solid 1px #000">配置预算项目
						</td>
					</tr>
					<tr>
						<td id="inputTd_1_1" height="22px;"	οnclick="switchShow(true, 1, 1);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_1_1" style="padding-left: 3px;">教育学费</div>
						<input id="inputText_1_1" οnblur="switchShow(false,1, 1);" type="text" class="inputmess" style="width: 100%; display: none" value="教育学费">
						<div id="inputContentDiv_1_1" style="display: none">大学学位已成为社会工作的基本门槛,也成为父母提供子女的基本,子女教育具有不具时间弹性和费用弹性,不象住房规划和退休规划,如财礼不足,可以减低标准,子女教育的时间点和费用比较固定,需要及早规划。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_1_2" height="22px;"	οnclick="switchShow(true, 2, 1);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_1_2" style="padding-left: 3px;">住宿费</div>
						<input id="inputText_1_2" οnblur="switchShow(false,2, 1);" type="text" class="inputmess" style="width: 100%; display: none" value="住宿费">
						<div id="inputContentDiv_1_2" style="display: none">住宿费项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_1_3" height="22px;" οnclick="switchShow(true, 3, 1);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_1_3" style="padding-left: 3px;">生活费</div>
						<input id="inputText_1_3" οnblur="switchShow(false,3, 1);" type="text" class="inputmess" style="width: 100%; display: none" value="生活费">
						<div id="inputContentDiv_1_3" style="display: none">生活费项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_1_4" height="22px;" οnclick="switchShow(true, 4, 1);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_1_4" style="padding-left: 3px;">其他</div>
						<input id="inputText_1_4" οnblur="switchShow(false,4, 1);" type="text" class="inputmess" style="width: 100%; display: none" value="其他">
						<div id="inputContentDiv_1_4" style="display: none">其他项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_1_5" height="22px;" οnclick="switchShow(true, 5, 1);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_1_5" style="padding-left: 3px;"></div>
						<input id="inputText_1_5" οnblur="switchShow(false,5, 1);" type="text" class="inputmess" style="width: 100%; display: none" value="">
						<div id="inputContentDiv_1_5" style="display: none"></div>
						</td>
					</tr>

				</table>
				</div>
				<div style="height: 130px; width: 100%; overflow-y: scroll; border: 1px solid #000; margin-top: 10px">
				<table id="inputTab_2" cellSpacing="0" cellPadding="0" width="100%" align="center" style="margin-top: 0px">
					<tr>
						<td style="padding-left: 5px; text-align: left; background-color: #EAEBDB; height: 25px; border-bottom: solid 1px #000">配置适用地区
						</td>
					</tr>
					<tr>
						<td id="inputTd_2_1" height="22px;" οnclick="switchShow(true, 1, 2);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_2_1" style="padding-left: 3px;">西北地区</div>
						<input id="inputText_2_1" οnblur="switchShow(false,1, 2);" type="text" class="inputmess" style="width: 100%; display: none" value="西北地区">
						<div id="inputContentDiv_2_1" style="display: none">配置适用地区,西北地区,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_2_2" height="22px;" οnclick="switchShow(true, 2, 2);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_2_2" style="padding-left: 3px;">福建省</div>
						<input id="inputText_2_2" οnblur="switchShow(false,2, 2);" type="text" class="inputmess" style="width: 100%; display: none" value="福建省">
						<div id="inputContentDiv_2_2" style="display: none">配置适用地区,福建省,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_2_3" height="22px;" οnclick="switchShow(true, 3, 2);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_2_3" style="padding-left: 3px;">北京市</div>
						<input id="inputText_2_3" οnblur="switchShow(false,3, 2);" type="text" class="inputmess" style="width: 100%; display: none" value="北京市">
						<div id="inputContentDiv_2_3" style="display: none">配置适用地区,北京市,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_2_4" height="22px;" οnclick="switchShow(true, 4, 2);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_2_4" style="padding-left: 3px;"></div>
						<input id="inputText_2_4" οnblur="switchShow(false,4, 2);" type="text" class="inputmess" style="width: 100%; display: none" value="">
						<div id="inputContentDiv_2_4" style="display: none"></div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_2_5" height="22px;" οnclick="switchShow(true, 5, 2);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_2_5" style="padding-left: 3px;"></div>
						<input id="inputText_2_5" οnblur="switchShow(false,5, 2);" type="text" class="inputmess" style="width: 100%; display: none" value="">
						<div id="inputContentDiv_2_5" style="display: none"></div>
						</td>
					</tr>

				</table>
				</div>
				<div style="height: 130px; width: 100%; overflow-y: scroll; border: 1px solid #000; margin-top: 10px">
				<table id="inputTab_3" cellSpacing="0" cellPadding="0" width="100%" align="center" style="margin-top: 0px">
					<tr>
						<td style="padding-left: 5px; text-align: left; background-color: #EAEBDB; height: 25px; border-bottom: solid 1px #000">配置预算方案
						</td>
					</tr>
					<tr>
						<td id="inputTd_3_1" height="22px;" οnclick="switchShow(true, 1, 3);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_3_1" style="padding-left: 3px;">低成本预算方案</div>
						<input id="inputText_3_1" οnblur="switchShow(false,1, 3);" type="text" class="inputmess" style="width: 100%; display: none" value="低成本预算方案">
						<div id="inputContentDiv_3_1" style="display: none">配置预算方案,低成本预算方案,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_3_2" height="22px;" οnclick="switchShow(true, 2, 3);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_3_2" style="padding-left: 3px;">普通预算方案</div>
						<input id="inputText_3_2" οnblur="switchShow(false, 2, 3);" type="text" class="inputmess" style="width: 100%; display: none" value="普通预算方案">
						<div id="inputContentDiv_3_2" style="display: none">配置预算方案,普通预算方案,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_3_3" height="22px;" οnclick="switchShow(true, 3, 3);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_3_3" style="padding-left: 3px;">豪华预算方案</div>
						<input id="inputText_3_3" οnblur="switchShow(false,3, 3);" type="text" class="inputmess" style="width: 100%; display: none" value="豪华预算方案">
						<div id="inputContentDiv_3_3" style="display: none">配置预算方案,豪华预算方案,项目说明。</div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_3_4" height="22px;" οnclick="switchShow(true, 4, 3);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_3_4" style="padding-left: 3px;"></div>
						<input id="inputText_3_4" οnblur="switchShow(false,4, 3);" type="text" class="inputmess" style="width: 100%; display: none" value="">
						<div id="inputContentDiv_3_4" style="display: none"></div>
						</td>
					</tr>
					<tr>
						<td id="inputTd_3_5" height="22px;" οnclick="switchShow(true, 5, 3);" style="border-bottom: solid 1px #000;">
						<div id="inputDiv_3_5" style="padding-left: 3px;"></div>
						<input id="inputText_3_5" οnblur="switchShow(false, 5, 3);" type="text" class="inputmess" style="width: 100%; display: none" value="">
						<div id="inputContentDiv_3_5" style="display: none"></div>
						</td>
					</tr>
				</table>
				</div>
				</td>
				<td width="8%" align="center" valign="top"style="padding-right: 5px">
					<input type="button" value="删 除" onClick="deleteItem();"/>
				</td>
				<td width="50%" align="left" valign="top">
				<textarea id="inputContent" οnblur="saveContent();" style="width: 90%; height: 410px">大学学位已成为社会工作的基本门槛,也成为父母提供子女的基本,子女教育具有不具时间弹性和费用弹性,不象住房规划和退休规划,如财礼不足,可以减低标准,子女教育的时间点和费用比较固定,需要及早规划。</textarea>
				</td>
			</tr>
		</table>
		</td>
	</tr>
</table>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值