extjs面板的可拖动事件

extjs面板的可拖动事件,extjs,extjs4,panel,draggable,extjs4.1,Extjs,Extjs4,Panel,Draggable,Extjs4.1,当我将给定面板设置为“可拖动”时,是否有一个用于拖动结束事件的侦听器?我发现,通过在初始配置中启用“draggable”属性,可以使一个面板在另一个面板中拖动,但我希望在拖动发生时捕获事件。查看文档,我发现我可以添加类似“load”的侦听器,但我没有看到可以侦听的所有受支持事件的列表。这可以在配置中处理,还是应该使用addListener()?无论哪种方式,语法是什么?我如何使用文档来解决这个问题?我只想能够在每次拖动面板在其容器周围移动时启动一个函数。谢谢 var panel = Ext.cr

当我将给定面板设置为“可拖动”时,是否有一个用于拖动结束事件的侦听器?我发现,通过在初始配置中启用“draggable”属性,可以使一个面板在另一个面板中拖动,但我希望在拖动发生时捕获事件。查看文档,我发现我可以添加类似“load”的侦听器,但我没有看到可以侦听的所有受支持事件的列表。这可以在配置中处理,还是应该使用addListener()?无论哪种方式,语法是什么?我如何使用文档来解决这个问题?我只想能够在每次拖动面板在其容器周围移动时启动一个函数。谢谢

var panel = Ext.create('Ext.tree.Panel', {
     draggable: true,
     width: 200,
     height: 200,
});
我希望我能像这样做

var panel = Ext.create('Ext.tree.Panel', {
    draggable: true,
    width: 200,
    height: 200,
    listeners: {            
       dragging: function(e) { 
           // being dragged
       },
       dropped: function(e) { 
           // dropped
       },
});

在这种情况下,你不会对Listeren这样做。有四种模板方法可以重写

所以你可以这样做:

var panel = Ext.create('Ext.tree.Panel', {
     draggable: {
         onDrag: function(e) {
              // do what you like
         },
         onEnd: function(e) {
              // do what you like
         }
     },
     width: 200,
     height: 200,
});

请注意,参数是事件对象

在这种情况下,您不会对Listerns执行此操作。有四种模板方法可以重写

所以你可以这样做:

var panel = Ext.create('Ext.tree.Panel', {
     draggable: {
         onDrag: function(e) {
              // do what you like
         },
         onEnd: function(e) {
              // do what you like
         }
     },
     width: 200,
     height: 200,
});

注意,参数是事件对象

我试图在拖动开始前修改
Ext.window.window
上的组件,在sencha论坛中发现
draggable
窗口侦听
dragstart
事件,可能它也与
面板
一起工作

我使用了以下代码:

listeners: {
    dragstart: function() {
        console.log('we are starting the drag');
    }
}
工作起来很有魅力。在我的应用程序中使用Ext JS 4.1.0


对于拖动结束,我发现
Ext.window.window
move
事件符合需要。

我试图在拖动开始前修改
Ext.window.window
上的组件,并在sencha论坛中发现
draggable
窗口侦听
dragstart
事件,也许它也可以与
面板一起工作

我使用了以下代码:

listeners: {
    dragstart: function() {
        console.log('we are starting the drag');
    }
}
工作起来很有魅力。在我的应用程序中使用Ext JS 4.1.0


对于拖动的结束,我发现
Ext.window.window
move
事件符合需要。

要将dragstart listener与Ext.panel.panel一起使用,需要设置simpleDrag:true


但是当simpleDrag处于活动状态时,您不能拖放,只需将面板作为窗口拖动/移动即可。

要将dragstart listener与Ext.Panel.Panel一起使用,您需要将simpleDrag设置为true


但是,当simpleDrag处于活动状态时,您不能拖放,只需将面板作为窗口拖动/移动即可。

@不,您错了。这些是模板方法,意味着它们将被覆盖。只是在4.1.0中尝试了一个窗口。方法重写后,拖动正常行为不起作用。但是当窗口是可拖动的时,它确实使用ComponentDragger,它有一个dragstart事件,在您可以监听的窗口上触发。@Tappose窗口是面板的一个特殊子类型,它使用一个自定义组件dragger,它自己设置模板方法。@Tappose不,您错了。这些是模板方法,意味着它们将被覆盖。只是在4.1.0中尝试了一个窗口。方法重写后,拖动正常行为不起作用。但是当窗口是可拖动的时,它确实使用ComponentDragger,它有一个dragstart事件,在您可以侦听的窗口上触发。@如果窗口是面板的一个特殊子类型,它使用一个自定义组件dragger,该组件dragger本身设置模板方法。