首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Draggable在extjs6.5中不起作用

Draggable在extjs6.5中不起作用
EN

Stack Overflow用户
提问于 2018-06-18 16:26:31
回答 1查看 129关注 0票数 0

我正在使用下面的代码-

代码语言:javascript
复制
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()内部。

元素的可拖动功能不起作用。我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2018-06-18 18:38:43

首先,您需要清楚您想要使用哪个组件。在此之后,您需要将afterrender事件放在该组件上,并且在该事件中可以使用Ext.drag.Source

在这个中,我使用buttonExt.drag.Source创建了一个演示。

代码片段

代码语言:javascript
复制
Ext.application({
    name: 'Fiddle',

    launch: function () {
        var buttons = [],
            rendomColor = () => {
                return "#" + ((1 << 24) * Math.random() | 0).toString(16);
            };

        for (var i = 0; i < 10; i++) {
            buttons.push({
                text: `Button ${i+1}`,
                margin: 10,
                style: `background:${rendomColor()}`
            });
        }

        Ext.create({
            xtype: 'panel',
            height: window.innerHeight,
            title: 'Ext.drag.Source Example',
            defaults: {
                xtype: 'button'
            },
            items: buttons,
            renderTo: Ext.getBody(),

            listeners: {
                afterrender: function (panel) {
                    panel.items.items.forEach(item => {
                        new Ext.drag.Source({
                            element: item.el,
                            constrain: {
                                // Drag only vertically in 30px increments
                                //vertical: true,
                                snap: {
                                    y: 1,
                                    x: 1
                                }
                            }
                        })
                    })

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

https://stackoverflow.com/questions/50905395

复制
相关文章

相似问题

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