DD2

goodboyy 2010-10-16 12:27:51
//match && p ? pos : c.items.getCount() 计算出空降地点的行数
var overEvent = this.createEvent(dd, e, data, col, c,
match && p ? pos : c.items.getCount());

if(portal.fireEvent('validatedrop', overEvent) !== false &&
portal.fireEvent('beforedragover', overEvent) !== false){

// make sure proxy width is fluid
px.getProxy().setWidth('auto');

//正在拖动的面板原来的容器
var sourceCt = dd.panel.ownerCt;

//正在拖动的面板在原来容器中的行序号
var sourcePos = sourceCt.items.items.indexOf(dd.panel);


if(c == sourceCt)
{
px.moveProxy(p.el.dom.parentNode, match ? p.el.dom : null);
}
else
{
if(match)
{
var sourceDesPanel = c.items.items[pos];
sourceDesPanel.el.dom.parentNode.removeChild(sourceDesPanel.el.dom);
sourceCt.insert(sourcePos,sourceDesPanel);

c.insert(pos, dd.panel);
c.doLayout();
dd.proxy.getProxy().remove();
sourceCt.doLayout();
}
}

this.lastPos = {c: c, col: col, p: match && p ? pos : false};

//this.scrollPos = portal.body.getScroll();

portal.fireEvent('dragover', overEvent);

return overEvent.status;
}else{
return overEvent.status;
}

},

notifyOut : function(){
delete this.grid;
},

notifyDrop : function(dd, e, data){

delete this.grid;
if(!this.lastPos){
return;
}
var c = this.lastPos.c, col = this.lastPos.col, pos = this.lastPos.p;

var dropEvent = this.createEvent(dd, e, data, col, c,
pos !== false ? pos : c.items.getCount());

if(this.portal.fireEvent('validatedrop', dropEvent) !== false &&
this.portal.fireEvent('beforedrop', dropEvent) !== false){

//去除空降地点的代理,即界面上的虚框
dd.proxy.getProxy().remove();

//把正在拖动的这个面板从以前的容器中删除 再追加或插入到新的容器里
var sourceDom = dd.panel.el.dom;

var portal = dropEvent.portal;

...全文
94 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

700

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧