_ico.removeIcoid删除图标

2018-02-07 15:03 更新
  • 函数原型

/* 创建图标

 * @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);

注:此方法删除的图标如果在回收站或在我的云中,彻底删除;否则删除到回收站。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号