0

当我使给定的面板“可拖动”时,是否有一个拖动结束事件的侦听器?我发现我可以通过在其初始配置中启用“可拖动”属性来使面板在另一个面板内可拖动,但我想在拖动发生时捕获事件。查看文档,我发现我可以添加像“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
       },
});
4

3 回答 3

2

在这种情况下,您不会对听众这样做。您可以覆盖四种模板方法

所以你可以这样做:

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,
});

注意参数e是事件对象

于 2012-11-15T08:08:50.377 回答
1

我正在尝试Ext.window.Window在拖动开始之前修改 a 上的组件,并在 sencha 论坛中发现一个draggable窗口监听dragstart事件,也许它也可以与 a 一起使用Panel

我使用了这段代码:

listeners: {
    dragstart: function() {
        console.log('we are starting the drag');
    }
}

并且像魅力一样工作。在我的应用程序中工作,使用 Ext JS 4.1.0

对于拖尾,我发现该move事件Ext.window.Window适合需要。

于 2013-07-30T21:53:19.960 回答
1

要在 Ext.panel.Panel 中使用 dragstart 侦听器,您需要设置 simpleDrag: true。

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

于 2014-05-22T14:14:22.957 回答