Javascript EXT拖放事件冲突-即,如何同时使用ondragout和notifyout?
所以我有多个Javascript EXT拖放事件冲突-即,如何同时使用ondragout和notifyout?,javascript,extjs,Javascript,Extjs,所以我有多个Ext.dd.DragSource和Ext.dd.DropTarget对象。为了获得所需的正确行为,我将逻辑附加到这两个对象上的事件。不可能将所有逻辑都附加到拖放 我的问题是,当我在拖动对象上设置onDragOut和onDragEnter时,它们会阻止notifyEnter和notifyOut在拖放对象上触发 有没有办法让这两个事件同时发生 var ds = new Ext.dd.DragSource(id, { ddGroup: 'drops' }); ds.onDragEnter
Ext.dd.DragSource
和Ext.dd.DropTarget
对象。为了获得所需的正确行为,我将逻辑附加到这两个对象上的事件。不可能将所有逻辑都附加到拖放
我的问题是,当我在拖动对象上设置onDragOut
和onDragEnter
时,它们会阻止notifyEnter
和notifyOut
在拖放对象上触发
有没有办法让这两个事件同时发生
var ds = new Ext.dd.DragSource(id, { ddGroup: 'drops' });
ds.onDragEnter = function (e, id) { console.log('Drag Enter'); }
ds.onDragOut = function (e, id) { console.log('Drag Exit'); }
var dt = new Ext.dd.DropTarget(id, { ddGroup: 'drops' });
// These never fire.
dt.notifyEnter = function (source, evt, data) { console.log('Drop Enter'); }
dt.notifyOut = function (source, evt, data) { console.log('Drop Exit'); }
我使用的是Extjs 4.0.2a,不幸的是,目前我仍在使用这个版本。这方面的任何帮助都会很好。由于没有答案,我将只添加我当前正在使用的工作。这不是问题的解决方案,只是回避问题的替代方案 因此,由于我不能同时在拖放元素上触发这两个事件,所以我只是使用不同的事件
var ds = new Ext.dd.DragSource(id, { ddGroup: 'drops' });
ds.onDragOver = function (e, id) { console.log('Drag Over'); }
ds.beforeDragOut = function (e, id) { console.log('Drag Out Almost'); }
尽管这些事件与我想要的并不完全相同,但只要有一点额外的逻辑,我就可以让它们以非常相似的方式运行
如果有更好的解决方案,一种触发适当事件的方法,那么我很乐意接受。查看ExtJS文档和源代码,我认为您正在覆盖
onDragEnter
和onDragOut
,其中原始函数将触发对notifyEnter
和notifyOut
的调用。我建议只将文档()中列出的函数覆盖为“默认为空函数”,例如,beforeDragEnter
和beforeDragOut
如果您真的需要覆盖这些方法,我建议保存原始方法并从函数中调用它们。如果您需要该模式的帮助,我可以编辑我的答案以提供示例