javascript实现节点(div)名称编辑
节点html代码如下:
<divclass="img_1"id="img_1">
<inputtype="image"class="img_1"src="img/cump.png"></input>
<divclass="noteText"id="noteTxt"type="text"ondblclick="changeName(this.id);">123</div>
</div>
js编辑noteTxt文本,function如下:
functionchangeName(noteTxtId){
varnoteTxt=document.getElementById(noteTxtId);
noteTxt.style.display="none";//.style.display="block"
vardiv=noteTxt.parentNode;
if(!document.getElementById("noteInput")){
vartext=document.createElement("input");
text.type="text";
text.id="noteInput";
text.style.width=getStyle(noteTxt,'width');
text.style.height=getStyle(noteTxt,'height');
text.style.marginTop=getStyle(noteTxt,'marginTop');
text.style.textAlign=getStyle(noteTxt,'textAlign');
text.value=noteTxt.innerHTML;
div.appendChild(text);
text.select();
text.onblur=function(){
noteTxt.style.display="block";
noteTxt.innerHTML=text.value;
//text.style.display="none";
div.removeChild(text);
}
}
}
//获得css文件中的样式
functiongetStyle(obj,attr)
{
if(obj.currentStyle)
{
returnobj.currentStyle[attr]; //IE
}else{
returngetComputedStyle(obj,false)[attr]; //FF
}
}
css如下:
.img_1{
width:80px;
height:70px;
position:absolute;
}
.noteText{
width:80px;
height:15px;
text-align:center;
margin-top:70px;
word-break:break-all;
}
代码非常的简单,这里就不多做解释了,下伙伴们可以自由发挥下,使用到自己的项目中去。