如何使用Ext JS从元素中删除可拖动性?

时间:2013-03-15 15:26:40

标签: extjs

我有一个div,我想让它成为可拖动的,取决于我页面上其他一些东西的状态。我似乎能够轻松地使其可拖动,但我似乎无法弄清楚如何最好地从div中删除可拖动性。

我正在使用:

var dd = Ext.create('Ext.dd.DDProxy', mydiv, 'myDDGroup', { isTarget: false });

我试图通过删除它所属的唯一群组来删除可拖动性

dd.removeFromGroup('myDDGroup');

只是用

破坏dd对象
delete dd;

这些似乎都没有阻止我对元素进行拖拽。我怀疑我应该能够以某种方式使用b4Drag覆盖来简单地取消div在它开始之前的拖动,而不是切换div的可拖动状态,但我似乎无法找到有关如何在b4Drag电话中取消拖动的文档。

那么,在我已经让它成为可拖动的后,我如何才能使div无法打开?

3 个答案:

答案 0 :(得分:0)

似乎对我有用。

以下是JSFiddle http://jsfiddle.net/01gx33h0/

var dd = Ext.create('Ext.dd.DDProxy', 'test123', 'myDDGroup', { isTarget: false });
Ext.fly('btn123').on('click', function() {
  dd.removeFromGroup('myDDGroup');
});

你能给我一些不工作的示例代码吗?什么版本的ExtJ正在使用?

答案 1 :(得分:0)

你必须取消注意。不是removeFromGroup。 它只是从组中删除。但是不会删除该元素上的事件。

dd.unreg();

https://fiddle.sencha.com/#fiddle/1eun

答案 2 :(得分:0)

在查看需要拖动的特定内容时,您可能会认为允许拖动是用户期望的,因为一般的易用性可能会尝试ondragstart="return,这可能会附加到您的图片或链接像这样:

<a ondragstart="return false" href="#link">link</a>