Draggable在extjs6.5中不起作用

时间:2018-06-18 08:26:31

标签: javascript extjs extjs6-classic

我使用以下代码 -

afterListeners: function(thisEl, eOpts) {
    sliderSprite = Ext.create('Ext.draw.sprite.Rect', {
            width: spriteWidth, // half year width height : 20, x : 16, y : 0, draggable : true, floatable : true, 'stroke-width' : 2, fill : '#FCE5C5', stroke : '#C6B395' });

            sliderSprite.show(true);
            thisEl.getSurface().add(sliderSprite);
            alert("before source");

            new Ext.drag.Source({
                element: sliderSprite,
                constrain: {
                    // Drag only horizontal in 30px increments
                    horizontal: true, //                                                snap: { //                                                  y: 30 //                                                }
                },
                onDragMove: function() {
                    alert("inside source");
                    spriteHighlighter.remove();
                    me.onDragSprite(e, this, chartWidth, spriteWidth);
                },
                onDragEnd: function() {
                    me.refreshCharts(xPlots, bigChart, sliderSprite, firstYear, lastYear, chartWidth);
                }

            });
            alert("outside source");

        },
    }
}

现在,问题是,控件不会进入Ext.drag.Source()。我在源和外部源之前收到2条警报消息。因为它没有进入Ext.drag.Source()

元素的可拖动功能无效。我该怎么办?

1 个答案:

答案 0 :(得分:1)

首先,您需要明确要使用的组件。之后,您需要在该组件上放置afterrender事件,并且在该事件内部您可以使用Ext.drag.Source

FIDDLE 中,我使用jdk1.8.x_xbutton创建了一个演示。

CODE SNIPPET

Ext.drag.Source