我使用以下代码 -
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()
。
元素的可拖动功能无效。我该怎么办?
答案 0 :(得分:1)
首先,您需要明确要使用的组件。之后,您需要在该组件上放置afterrender
事件,并且在该事件内部您可以使用Ext.drag.Source
。
在 FIDDLE 中,我使用jdk1.8.x_x
和button
创建了一个演示。
CODE SNIPPET
Ext.drag.Source