1
我只需要拖动&只有当树节点是在EXTJS叶。 这是我的代码:如何限制拖放只有树节点是叶子EXTJS
拖动源
var tree = Ext.create('Ext.tree.Panel', {
title: 'Simple Tree',
width: 400,
height: 600,
store: store,
rootVisible: false,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop',
copy: true,
dragGroup: 'myDDGroup'
}
},
});
放置目标
Ext.define('myPanelDropTarget', {
extend: 'Ext.dd.DropTarget',
notifyEnter : function(source, e, data) {
console.log('enter');
return this.callParent(arguments);
},
notifyOut : function(source, e, data) {
console.log('out');
return this.callParent(arguments);
},
notifyOver : function(source, e, data) {
console.log('over');
return this.callParent(arguments);
},
notifyDrop : function(source, e, data) {
var me = this;
console.log('drop');
var text = data.records[0].get('text');
var d3ComponentEl = me.panel.down('#d3Component').getEl();
d3ComponentEl.insertHtml('beforeEnd', text + '<br />');
return true;
}
});
面板与降targetstrong文本
var panel = Ext.create('Ext.panel.Panel', {
title: 'Drop Target Panel',
border: true,
width: 400,
height: 600,
items: [
{
xtype: 'component',
id: 'd3Component',
autoEl: { tag: 'div' }
}
],
listeners: {
'afterrender': function() {
panel.dropZone = Ext.create('myPanelDropTarget', panel.getEl(), {
ddGroup: 'myDDGroup',
panel: panel
});
}
}
});
配置
这工作正常,但会发生什么,我也可以从树中拖放文件夹,并会限制只有叶困难。
例子:
拨弄完整的活生生的例子:在这里https://fiddle.sencha.com/#fiddle/340
看,如果该节点是不是叶子,我需要的是如果不取消叶落事件。有什么想法?
Ext.define('myPanelDropTarget', {
extend: 'Ext.dd.DropTarget',
nodedragover: function(targetNode, position, dragData){
var me = this;
var rec = dragData.records[0].raw.canDrop;
var camara = me.panel.down('#'+id);
console.log(camara.getEl());
if(!rec)
{
***//I need to cancel the drop event***
}
},
notifyDrop : function(source, e, data) {
this.nodedragover(source, e, data);
var me = this;
var cam = data.records[0].raw;
var target = cam.protocol+'://'+cam.user+':'+cam.pass+'@'+cam.ip+':'+cam.port+'/'+cam.ruta;
var camara = me.panel.down('#'+id);
camara.setTitle(cam.text);
var data = '<embed type="application/x-vlc-plugin" id="vlc1" name="vlc1" toolbar="false" allowfullscreen="false" width=100%; height=100%; target= "'+target+'"; />';
camara.body.setHTML(data);
return true;
}
});
能否请您提供更多的澄清答案吗?可能是代码片段或[小提琴](https://fiddle.sencha.com),表明您遇到的问题? – weeksdev
在文档中有一个示例:http://docs.sencha.com/extjs/4.2.2/#!/example/tree/custom-drop-logic.html –
我正在评审示例作品,但不是我,我设法找出节点是否是叶子,但当叶子节点是我们时,我不能取消掉落事件。这是代码。 – eliecerSR