Я пытаюсь реализовать перетаскивание senario из TreePanel extJs в div в теле страницы.Я следовал примеру Саки здесь .
Пока у меня есть следующий код:
var contentAreas = new Array();
var tree = new Ext.tree.TreePanel({
title : 'Widgets',
useArrows: true,
autoScroll: true,
animate: true,
enableDrag: true,
border: false,
layout:'fit',
ddGroup:'t2div',
loader:new Ext.tree.TreeLoader(),
root:new Ext.tree.AsyncTreeNode({
expanded:true,
leaf:false,
text:'Tree Root',
children:children
}),
listeners:{
startdrag:function() {
$('.content-area').css("outline", "5px solid #FFE767");
},
enddrag:function() {
$('.content-area').css("outline", "0");
}
}
});
var areaDivs = Ext.select('.content-area', true);
Ext.each(areaDivs, function(el) {
var dd = new Ext.dd.DropTarget(el, {
ddGroup:'t2div',
notifyDrop:function(ddt, e, node) {
alert('Drop');
return true;
}
});
contentAreas[contentAreas.length] = dd;
});
Перетаскивание начинается, и div подсвечивается, но когда я получаюпо сравнению с div он не отображается как действительная цель сброса, и падение не удается.
Это мой первый набег в extJS.Я JQuery насквозь, и я борюсь в данный момент.
Любая помощь будет признательна.
Ян
Редактировать
Кроме того, если я создаю панель с целевым объектом, это работает нормально.В чем разница между созданием элемента и выбором существующего элемента из DOM.Это, очевидно, где я иду не так, но я не мудрее.Я должен иметь возможность выбирать существующие элементы dom и превращать их в мишени для перетаскивания, чтобы приведенный ниже код не использовался.
Вот цель перетаскивания, которая работает
var target = new Ext.Panel({
renderTo: document.body
,layout:'fit'
,id:'target'
,bodyStyle:'font-size:13px'
,title:'Drop Target'
,html:'<div class="drop-target" '
+'style="border:1px silver solid;margin:20px;padding:8px;height:140px">'
+'Drop a node here. I\'m the DropTarget.</div>'
// setup drop target after we're rendered
,afterRender:function() {
Ext.Panel.prototype.afterRender.apply(this, arguments);
this.dropTarget = this.body.child('div.drop-target');
var dd = new Ext.dd.DropTarget(this.dropTarget, {
// must be same as for tree
ddGroup:'t2div'
// what to do when user drops a node here
,notifyDrop:function(dd, e, node) {
alert('drop');
return true;
} // eo function notifyDrop
});
}
});