首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXT拖放事件clash - ie。如何同时使用ondragout和notifyout?

EXT拖放事件clash - ie。如何同时使用ondragout和notifyout?
EN

Stack Overflow用户
提问于 2013-02-27 04:44:50
回答 2查看 539关注 0票数 1

所以我有多个Ext.dd.DragSourceExt.dd.DropTarget对象。为了获得我需要的正确行为,我将逻辑附加到这两个对象上的事件。不可能将所有逻辑都附加到拖放或拖放上。

我的问题是,当我在拖放对象上设置onDragOutonDragEnter时,它们会阻止notifyEnternotifyOut在拖放对象上触发。

代码语言:javascript
复制
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,不幸的是目前我被这个版本卡住了。这方面的任何帮助都是很好的。

EN

回答 2

Stack Overflow用户

发布于 2013-03-05 04:56:17

由于没有答案,我将只添加我当前正在使用的工作。这不是问题的解决方案,只是回避问题的另一种选择。

因此,由于我不能让这两个事件同时在拖放元素上触发,所以我只是使用不同的事件。

代码语言:javascript
复制
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'); }

尽管这些事件与我想要的并不完全相同,但通过一点额外的逻辑,我可以让它们以非常相似的方式运行。

如果有更好的解决方案,一种激发适当事件的方法,那么我会很高兴地接受它。

票数 0
EN

Stack Overflow用户

发布于 2013-03-09 07:40:36

查看ExtJS文档和源代码,我认为您正在重写onDragEnteronDragOut,其中原始函数将触发对notifyEnternotifyOut的调用。我建议只覆盖文档(http://docs.sencha.com/ext-js/4-1/#!/api/Ext.dd.DragSource)中列出的“默认情况下为空函数”的函数,例如beforeDragEnterbeforeDragOut

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15098902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档