如何限制拖动操作不超过一定的边界。在extjs(版本3)中是否有任何配置,我看到,使用了Ext.dd.DragZone类。但我不确定什么是可用性。我看到了一个方法dropNotAllowed。这是必须使用的方法吗?如果是的话,我应该如何使用它?请提供一些例子。
我正在寻找类似于(jquery UI的可拖动包容属性)的东西
http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.dd.DragZone-cfg-dropNotAllowed
我尝试使用设置的X和Y约束,但它没有解决问题:
abc.prototype.initDrag = function(v) {
v.dragZoneobj = new Ext.dd.DragZone(v.getEl(), {
getDragData : function(e) {
var sourceEl = e.getTarget(v.itemSelector, 10);
// sourceEl.setXConstraint( 0, 10 );
var t = e.getTarget();
var rowIndex = abc.grid.getView().findRowIndex(t);
var columnIndex = abc.grid.getView().findCellIndex(t);
if ((rowIndex !== false) && (columnIndex !== false)) {
if (sourceEl) {
abc.isDragged = true;
abc.scriptGrid.isDraggableForObject = false;
abc.scriptGrid.dragRowIndex = false;
d = sourceEl.cloneNode(true);
d.id = Ext.id();
d.textContent = sourceEl.innerHTML;
// d.setXConstraint( 0, 10 );
// d.setYConstraint( 0, 10 );
return {
ddel : d,
sourceEl : d,
sourceStore : v.store
}
}
}
},
getRepairXY : function() {
return this.dragData.repairXY;
},
});
}
上述代码中都注释了两者。上面的代码在渲染面板时启动。
编辑: 如何使用这些setX和setYcontraints?
答案 0 :(得分:0)
默认情况下,可以在屏幕上的任何位置拖动元素。在文档中,有两种方法setXConstraint( iLeft, iRight, iTickSize)
和setYConstraint( iUp, iDown, iTickSize )
这两种方法用于设置限制元素的垂直行程和角行程。