如何将loadMask仅应用于一个元素,而不是整个浏览器的width-height?默认
在这里,只有一个元素被 mask ,messageBox位于该元素内部的中心,而不是整个显示...
有任何想法吗?
编辑:
@Molecule,谢谢,但是这是当数据从某个来源加载时,我需要的是:
{
xtype:"button",
text:"Alert",
handler: function(){
Ext.Msg.show({
title:'Save Changes?',
msg: 'You are closing ?',
buttons: Ext.Msg.YES,
setLoading: // here somehow only mask parent element, and position alertBox...
}
}
最佳答案
每个组件都有其自己的loadMask
属性。您可以通过调用YourComponent.setLoading
来使用它。这是fiddle来说明我在说什么。
另一种方法是使用new Ext.LoadMask(YourComponent.el, {msg:"Please wait..."});
。您可以在fiddle中查看用法。
更新
这是代码示例,该代码示例显示如何将ExtJS4 loadMask和MessageBox应用于指定的Widget
Ext.create('Ext.panel.Panel', {
width: 600,
height: 400,
title: 'Border Layout',
layout: 'border',
items: [{
title: 'West Region is collapsible',
region:'west',
xtype: 'panel',
width: 400,
id: 'west-region-container',
layout: 'fit'
},{
title: 'Center Region',
region: 'center',
xtype: 'panel',
layout: 'fit',
}],
renderTo: Ext.getBody()
});
var myMask = new Ext.LoadMask(Ext.getCmp('west-region-container').el, {useMsg: false});
myMask.show();
var msg = Ext.Msg.show({
title:'Save Changes?',
msg: 'Bla-Bla',
buttons: Ext.Msg.OK,
modal: false
});
msg.alignTo(Ext.getCmp('west-region-container').el, 'c-c');
这是try-it-yourself example。
关于load - 将loadMask()应用于extjs中的单个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6776238/