這是之前類似IGOOGLE的拖放功能的JS程式碼
後半部
這是我個人認為比較難懂的地方
其他還有一點是用PHP寫的
今天就先不談
今天的重點是JS的部分
接續之前的那一個程式碼片段.....
function process(content,ation)
{
if(xmlhttp)
{
params = "";
content = encodeuricomponent(content);
if (action == "updatelist")
params="?content=" + serialize(content)+ "&action=updatelist";
else if (action=="addnewtask")
{
var newtask=trim(encodeuricomponent(document.getelementbyid(content).value));
if (newtask)
params="?content=" + new task +"&action=addnewtask";
}
else if (action=="deltask")
params="?content="+content+"&action=deltask";
if(params) cache.push(params);
try
{
if((xmlhttp.readystate == 4||xmlhttp.readystate==0)&&cache.length>0)
{
var cacheentry = cache.shift();
xmlhttp.open("Get","drag-and-drop.php"+cacheentry,true);
xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange=handlerequeststatechange;
xmlhttp.send(null);
}
else
{
settimeout("process();",1000);
}
}
catch(e)
{
displayerror(e.tostring());
}
}
}
function handlerequeststatechange()
{
if (xmlhttp.readystate ==4)
{
if(xmlhttp.status==200)
{
try
{
postupdateprocess();
}
catch(e)
{
displayerror(e.tostring());
}
}
else
{
displayerror(xmlhttp.statustext);
}
}
}
function postupdateprocess()
{
var response = xmlhttp.responsetext'
if(response.indexof("ERRNO")>=0||response.indexof("error")>=0)
alert(response);
document.getelementbyid("taskslist").innerhtml=response;
sortable.create("taskslist");
document.getelementbyid("txtnewtask").value="";
document.getelementbyid("txtnewtask").focus();
}
functi8on handlekey(e)
{
e=(!e)? windows.event:e;
code=(e.carcode ? e.charcode:
((e.keycode)?e.keycode:
((e.which)?e.which:0));
if(e.type=="keydown")
{
if(code==13)
{
process("txtnewtask","addnewtask");
}
}
}
function trim(s)
{
return s.replace(/(^\s+)|(\s+$)/g,"")
}