_ico.removeIcoid删除图标
函数原型
/* 创建图标
* @number icoid 被删除的icoid
* 注意:此函数只在前端桌面上删除图标,后端删除应该在此之前完成
*/
_ico.removeIcoid=function(icoid){
var data=_config.sourcedata.icos[icoid];
if(!data) return;
//关闭打开的目录
if(data.type=='folder'){
for(var winid in _window.windows){
if(_window.windows[winid].type=='folder' && _window.windows[winid].fid==data.oid){
_window.windows[winid].Close();
}
}
}
//获取图标所在的目录fid
var pfid=_config.sourcedata.icos[icoid].pfid;
if(_config.sourcedata.icos[icoid].isdelete>0){
pfid=_config.space.typefid['recycle'];
}
if(pfid==_config.space.typefid['desktop']){ //桌面时
//移除screneList;
var arr=new Array();
var icoids=_config.screenList;
for(var i=0;i<icoids.length;i++){
if(icoids[i]!=icoid) arr[arr.length]=icoids[i];
}
_config.screenList=arr;
var autolist=_layout.autolist;
if(autolist){
var obj=_ico.icos[icoid];
if(_layout.iconposition<4){//此图标的后排图标前移
jQuery('#icosContainer_body_'+_layout.fid).find('.Icoblock').each(function(){
var id1=this.id.replace('icon_','');
var obj1=_ico.icos[id1];
if(obj1.pos>obj.pos) {
obj1.pos-=1;
var pos=obj1.getpos(obj1.pos,'icosContainer_body_'+_layout.fid);
obj1.left=pos[0];
obj1.top=pos[1];
obj1.board.style.left=obj1.left+'px';
obj1.board.style.top=obj1.top+'px';
}
});
}else{ //居中排列时,重排桌面图标
_ico.refreshList(pfid);
}
_layout.resize(); //重新计算桌面布局
}
_select.SelectedStyle(obj.container,icoid,false); //删除选中
//删除图标,清除占用内存
jQuery(obj.board).remove();
for(var key in _ico.icos[icoid]){
delete _ico.icos[icoid][key];
}
delete _ico.icos[icoid];
}else if(pfid==_config.space.typefid['dock']){//在dock上时
//移除_config.dockList 中的icoid;
var icoarr=_config.sourcedata.icos[icoid];
if(icoarr.type=='app') var taskid='app_'+icoarr.oid;
else var taskid=icoid
var arr=new Array();
for(var i=0;i<_config.dockTaskList.length;i++){
if(_config.dockTaskList[i]!=taskid) arr.push(_config.dockTaskList[i]);
}
_config.dockTaskList=arr;
//pos超过此的图标全部向左移动一格
var obj=_dock.icos[taskid];
jQuery('#taskbar_dock').find('.task_Icoblock').each(function(){
var id1=this.id.replace('task_','');
var obj1=_dock.icos[id1];
if(obj1.pos>obj.pos) {
obj1.pos-=1;
var pos=obj1.getpos(obj1.pos);
obj1.left=pos[0];
obj1.top=pos[1];
obj1.board.style.left=obj1.left+'px';
obj1.board.style.top=obj1.top+'px';
}
});
//删除图标,清理内存
jQuery('#task_'+taskid).remove();
for(var key in _dock.icos[taskid]){
delete _dock.icos[taskid][key];
}
delete _dock.icos[taskid];
_dock.setDockSize(); //重新计算任务栏
}else if(pfid==_config.space.typefid['recycle']){//在回收站内
_config.sourcedata.folder[pfid].iconum=parseInt(_config.sourcedata.folder[pfid].iconum)-1;
_ico.checkRecycleStatus(); //检测回收站状态
}
//删除资源管理器和目录内的元素,维护目录树
for(var id in _filemanage.cons){
var filemanage=_filemanage.cons[id]
if(filemanage.data[icoid]){
_select.SelectedStyle('icosContainer_content_'+filemanage.winid+'_'+id,icoid,false);
filemanage.delIcos(_config.sourcedata.icos[icoid]);
}
}
};
此函数只是在前端删除图标,如果想连带后端一起删除,请使用下面的调用方法
/* 删除图标
* @ number icoid //删除的图标icoid
* @ boolean noconfirm //是否弹出提示删除对话框
*/
_ajax.delIco(icoid,noconfirm);
注:此方法删除的图标如果在回收站或在我的云中,彻底删除;否则删除到回收站。