懂视1
懂视101
懂视201
懂视301
懂视401
懂视501
懂视601
懂视701
懂视801
懂视901
懂视1001
懂视1101
懂视1201
懂视1301
懂视1401
懂视1501
懂视1601
懂视1701
懂视1801
懂视1901
文库1
文库101
文库201
文库301
文库401
文库501
文库601
文库701
文库801
文库901
文库1001
文库1101
文库1201
文库1301
文库1401
文库1501
文库1601
文库1701
文库1801
文库1901
吉福美食网
全部频道
首页
科技
教育
生活
旅游
时尚
美容
美食
健康
体育
游戏
汽车
家电
您的当前位置:
首页
JavaScript就地编辑HTML节点实现代码_javascript技巧
JavaScript就地编辑HTML节点实现代码_javascript技巧
来源:吉福美食网
点击编辑当前内容
var EditField={ configure:function(id){ this.id=id; this.createElements(); //动态生成编辑输入框 this.toScan(); //初始化动态生成的输入框和按钮、待编辑的DOM元素的display属性 this.addEvents(); //给相关的DOM元素添加事件 }, events:function(elem,type,fn){ //用于添加事件的通用函数 if(elem.attachEvent){ elem.attachEvent("on"+type,fn); }else if(elem.addEventListener){ elem.addEventListener(type,fn,false); }else{ elem["on"+type]=fn; } return elem; }, addEvents:function(){ //添加事件 var that=this; this.events(this.btnSubmit,"click",function(){ that.save(); }); this.events(this.btnCancel,"click",function(){ that.cancel(); }); this.events(document.getElementById(this.id),"click",function(){ that.toEdit(); }); }, insertAfter:function(newNode,referenceNode){ //将动态生成的输入框和按钮插入到待编辑元素的后面 if (referenceNode.nextSibling) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); }else{ var p=referenceNode.parentNode || document.body; p.appendChild(newNode); } }, createElements:function(){ //动态生成输入框和按钮 this.divContainer=document.createElement("div"); //this.parentElement.appendChild(this.divContainer); this.insertAfter(this.divContainer,document.getElementById(this.id)); this.input=document.createElement("input"); this.input.type="text"; this.input.value=document.getElementById(this.id).innerHTML; //初始化值 this.divContainer.appendChild(this.input); this.btnSubmit=document.createElement("input"); this.btnSubmit.value="Submit"; this.btnSubmit.type="button"; this.divContainer.appendChild(this.btnSubmit); this.btnCancel=document.createElement("input"); this.btnCancel.type="button"; this.btnCancel.value="Cancel"; this.divContainer.appendChild(this.btnCancel); }, toEdit:function(){ //转换成编辑状态 this.divContainer.style.display="block"; document.getElementById(this.id).style.display="none"; this.setValue(); }, toScan:function(){ //转换成浏览状态 document.getElementById(this.id).style.display="block"; this.divContainer.style.display="none"; }, getValue:function(){ //获取输入框的值 return this.input.value; }, setValue:function(){ //设置输入框的值 this.input.value=document.getElementById(this.id).innerHTML; }, save:function(){ //保存编辑结果 document.getElementById(this.id).innerHTML=this.getValue(); this.toScan(); }, cancel:function(){ //取消当前的编辑 this.toScan(); } }; onload=function(){ EditField.configure("p"); //调用configure函数,确定那个DOM元素进行就地编辑 } script>
Edit Demo
脚本之家 www.gxlcms.com
Copyright:Super sha.
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
显示全文