Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EXT拖放事件冲突-即,如何同时使用ondragout和notifyout?_Javascript_Extjs - Fatal编程技术网

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

如果您真的需要覆盖这些方法,我建议保存原始方法并从函数中调用它们。如果您需要该模式的帮助,我可以编辑我的答案以提供示例