javascript - Draggable 在 extjs6.5 中不起作用
问题描述
我正在使用下面的代码 -
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()
。
元素的可拖动功能不起作用。我应该怎么办 ?
解决方案
首先,您需要明确要使用哪个组件。之后,您需要将afterrender
事件放在该组件上,并且在该事件内部您可以使用Ext.drag.Source
.
在这个FIDDLE中,我使用button
and创建了一个演示Ext.drag.Source
。
代码片段
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
}
}
})
})
}
}
});
}
});
推荐阅读
- java - Gradle 构建失败 - AGPBI
- sql - 具有两个匹配结果的 SQL Server MERGE
- javascript - 如何在javascript中引用目录
- vb.net - 检查泛型类
- vba - VBA 宏:将工作表从一个 Excel 文件复制到另一个
- file-upload - 使用节点中的大型媒体文件一次发出多个发布请求时的内存问题
- c# - C# - 当用户滚动到富文本框的底部时如何显示一个复选框
- excel - 如何在 Excel 中将月份数字(即“12”)转换为月份名称?
- git - 清理 git 历史上的“WIP 和索引”
- bots - 制作机器人来填写 Troops.ai 对话框以更新销售人员记录,如何让我的机器人填写部队对话框?