📄 clickedit.js
字号:
/******************************************
* Edit in place
******************************************/
var url='ajax.php';
var tmpTag=new Array();
var tmpStore=new Array();
function makeEditable(id){
tmpTag[id] = $(id).innerHTML?1:0;
$(id).innerHTML=$(id).innerHTML?($(id).innerHTML):'Click here to edit!';
Event.observe(id, 'click', function(){edit($(id))}, false);
Event.observe(id, 'mouseover', function(){showAsEditable($(id))}, false);
Event.observe(id, 'mouseout', function(){showAsEditable($(id), true)}, false);
}
function edit(obj){
Element.hide(obj);
tmpStore[obj.id]=obj.innerHTML;
var textarea = '<div id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="2" cols="30">'+(tmpTag[obj.id]==0?'':trim(obj.innerHTML))+'</textarea>';
var button = '<div style="align:center;"><input id="'+obj.id+'_save" type="button" class=button value="SAVE" /> OR <input id="'+obj.id+'_cancel" type="button" class=button value="CANCEL" /></div></div>';
new Insertion.After(obj, textarea+button);
Event.observe(obj.id+'_save', 'click', function(){saveChanges(obj)}, false);
Event.observe(obj.id+'_cancel', 'click', function(){cleanUp(obj)}, false);
}
function showAsEditable(obj, clear){
if (!clear){
Element.removeClassName(obj, 'editable');
}else{
Element.addClassName(obj, 'editable');
}
}
function saveChanges(obj){
var new_content = escape($F(obj.id+'_edit'));
obj.innerHTML = "Saving...";
cleanUp(obj, true);
var success = function(t){editComplete(t, obj);}
var failure = function(t){editFailed(t, obj);}
var pars = 'id='+obj.id+'&mode=split&content='+new_content;
var myAjax = new Ajax.Request(url, {method:'post', postBody:pars, onSuccess:success, onFailure:failure});
}
function cleanUp(obj, keepEditable){
Element.remove(obj.id+'_editor');
Element.show(obj);
if (!keepEditable) showAsEditable(obj, true);
}
function editComplete(t, obj){
obj.innerHTML = t.responseText;
tmpTag[obj.id] = obj.innerHTML?1:0;
obj.innerHTML=obj.innerHTML?obj.innerHTML:'Click here to edit!';
showAsEditable(obj, true);
}
function editFailed(t, obj){
alert('Sorry, the update failed.');
obj.innerHTML = tmpStore[obj.id];
cleanUp(obj,0);
}
function trim(inputString) {
if (typeof inputString != "string") { return inputString; }
var retValue = inputString;
var ch = retValue.substring(0, 1);
while (ch == " ") {
retValue = retValue.substring(1, retValue.length);
ch = retValue.substring(0, 1);
}
ch = retValue.substring(retValue.length-1, retValue.length);
while (ch == " ") {
retValue = retValue.substring(0, retValue.length-1);
ch = retValue.substring(retValue.length-1, retValue.length);
}
while (retValue.indexOf(" ") != -1) {
retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length);
}
return retValue;
}
/******************************************
* Edit in place
******************************************/
function populateValue(act,id,formname,hasval)
{
$(formname).id.value = id;
$(formname).act.value = act;
if(act+'_'+id)
{
$(formname).edits.value = hasval==0?'':unhtmlspecialchars($(act+'_'+id).innerHTML);
}
return overlay($(act+'_'+id), formname+'_div')
}
function clickEditValue(act,id,formname)
{
var hasval = $(act+'_'+id).innerHTML!='';
if($(act+'_'+id).innerHTML=='') $(act+'_'+id).innerHTML='Click here to edit!';
Event.observe(act+'_'+id, 'click', function(){ return populateValue(act,id,formname,hasval)}, false);
}
function clickEditValues()
{
for (var i=2; i<arguments.length; i++)
{
clickEditValue(arguments[i],arguments[0],arguments[1])
}
}
function submitComplete(res, formname)
{
var act = $(formname).act.value;
var id = $(formname).id.value;
$(act+'_'+id).innerHTML = res.responseText=='' ? 'Click here to edit!' : res.responseText;
overlayclose('clickeditform_div');
return false;
}
function submitFailed(res, obj){
alert('Sorry, the update failed.');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -