js实现就地编辑

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="../js/jquery-2.1.1.js"></script>
<title></title>
</head>
<body>
<div id="titleClassical">

</div>
</body>
<script type="text/javascript">
function addEvent(obj, type, fn) {
if (obj.attachEvent) {
obj[‘e‘ + type + fn] = fn;
obj[type + fn] = function() {
obj[‘e‘ + type + fn](window.event);
}
obj.attachEvent(‘on‘ + type, obj[type + fn]);
} else
obj.addEventListener(type, fn, false);
}

function removeEvent(obj, type, fn) {
if (obj.detachEvent) {
obj.detachEvent(‘on‘ + type, obj[type + fn]);
obj[type + fn] = null;
} else
obj.removeEventListener(type, fn, false);
}

function EditInPlaceField(id, parent, value) {
this.id = id;
this.value = value ||‘default value‘;
this.parentElement = parent;

this.createElements(this.id);
this.attachEvents();
}

EditInPlaceField.prototype = {
createElements: function(id){
this.containerElement = document.createElement(‘div‘);
this.parentElement.append(this.containerElement);

this.staticElement = document.createElement(‘span‘);
this.containerElement.appendChild(this.staticElement);
this.staticElement.innerHTML = this.value;

this.fieldElement = document.createElement(‘input‘);
this.fieldElement.type = ‘text‘;
this.fieldElement.value = this.value;
this.containerElement.appendChild(this.fieldElement);

this.saveButton = document.createElement(‘input‘);
this.saveButton.type = ‘button‘;
this.saveButton.value = ‘save‘;
this.containerElement.appendChild(this.saveButton);

//cancel button
this.cancelButton = document.createElement(‘input‘);
this.cancelButton.type = ‘button‘;
this.cancelButton.value = ‘cancel‘;
this.containerElement.appendChild(this.cancelButton);
},//createElements
attachEvents:function(){
var that = this;
addEvent(this.staticElement, ‘click‘, function(){that.convertToEditable();});
addEvent(this.saveButton, ‘click‘, function(){that.save();});
addEvent(this.cancelButton, ‘click‘, function(){that.cancel();});
},
convertToEditable:function(){
this.staticElement.style.display = ‘none‘;
this.fieldElement.style.display = ‘inline‘;
this.saveButton.style.display = ‘inline‘;
this.cancelButton.style.display = ‘inline‘;
},
save:function(){
this.value = this.getValue();
console.log(this.value);
var that = this;
var callback = {
success:function(){ that.convertToText();},
failure:function(){ alert(‘error saving value.‘);}
};
//ajaxRequest(‘GET‘, ‘save.php?id=‘+this.id+‘&value=‘+this.value, callback);
},
cancel:function(){
this.converToText();
},
converToText:function(){
this.fieldElement.style.display = ‘none‘;
this.saveButton.style.display = ‘none‘;
this.cancelButton.style.display = ‘none‘;
this.staticElement.style.display = ‘inline‘;

this.setValue(this.value);
},
setValue:function(value){
this.fieldElement.value = value;
this.staticElement.innerHTML = value;
},
getValue:function(){
return this.fieldElement.value;
}
};

var titleClassical = new EditInPlaceField(‘titleClassical‘, $(‘body‘), ‘Title Here‘);
var currentTitleText = titleClassical.getValue();
</script>
</html>

时间: 2024-11-05 19:31:12

js实现就地编辑的相关文章

在线即时展现 Html、JS、CSS 编辑工具 - JSFiddle

在线即时展现 Html.JS.CSS 编辑工具 - JSFiddle 想对它做些说明介绍.但是它确是那么的easy使用. 兴许有时间,把左側列表作以相关介绍和演示样例演示吧.

JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素

JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素  原文:JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素 源代码下载地址:http://www.zuidaima.com/share/1550463322606592.htm 源代码截图: JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素

Office 365 小技巧 :Microsoft Teams_ 就地编辑文档

Blog 地址:https://blog.51cto.com/13969817 Microsoft Teams 最大的特性是可以加强团队之间的协作能力,团队可以在同一个地方进行沟通和协作,并且与Microsoft Office深度集成,与团队成员进行文档共享,多人协同编辑,团队的工作方式发生了改变,工作效率得到了提升. 但很多企业在推广Teams的时候,终端用户都需要一个转型的过程,他们希望分享的文档可以就地编辑,保留传统的编辑模式,而非在线编辑,这种情况下,我们该如何满足用户的需求呢? 今天我

JS实现双击编辑可修改

需求描述:在一段文字处双击可以进行修改,也就是双击后创建输入框,输入内容,在输入框失去焦点后将输入的内容再以文字的形式显示出来,以下是html代码: 1 <fieldset> 2 <legend>双击用户名进行编辑</legend> 3 <dl> 4 <dt>你的用户名:</dt> 5 <dd ondblclick="ShowElement(this)">诸葛亮</dd> 6 </dl

js在一个可编辑的div光标处插入图片或者文本(兼容ie,火狐等浏览器)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

js获取可编辑区域光标位置

请到简书中看,地址: http://www.jianshu.com/p/19a507cd5fd7 github测试例子 https://github.com/Stevenzwzhai/plugs/tree/master/selection-%E5%8F%AF%E7%BC%96%E8%BE%91%E5%8C%BA%E5%85%89%E6%A0%87%E4%BD%8D%E7%BD%AE

JS双击div编辑文本内容

HTML代码: <div class="album"> <div class="image"><a href="javascript:;" onclick="view({$vo.id})"><img src="{$vo.img}" /></a></div> <div class="name" id="

Jeditable 点击编辑文字插件

Jeditable - jQuery就地编辑插件使用 jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件.(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本.),你可以通过这个演示页面来亲自体验下. 官网:http://www.appelsiini.net/projects/j

一些有用的js插件

getfuelux.com  一系列插件合集 Ion.RangeSlider 超级牛的范围选择控件 Ion.CheckRadio Ion.Tabs Ion.Calendar Ion.ImageSlider Ion.Zoom www.ngwidgets.com  Advanced UI Widgets for AngularJS http://www.jq22.com/  jQuery 插件库 http://jvectormap.com/  地图插件 X-editable  就地编辑 http:/