如何在显示加载掩码时禁用用户操作

时间:2011-10-19 10:09:06

标签: javascript extjs extjs4

我正在使用ExtJS 4.我的要求是当我显示加载掩码时,应忽略用户点击。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以按如下方式在文档正文中设置加载掩码...

//在所有Ajax请求期间显示一个微调器     var myMask = new Ext.LoadMask(Ext.getBody(),{         msg:“请等一下......”     });

// Ajax loading message..
Ext.Ajax.on('beforerequest', myMask.show, myMask);
Ext.Ajax.on('requestcomplete', myMask.hide, myMask);
Ext.Ajax.on('requestexception', myMask.hide, myMask);

所以当你的应用程序有一个进程时(通常在Extjs4中,Ajax调用执行的所有主要进程)比你可以在整个主体上获得一个掩码。

或者,如果不是您的要求,也可以使用以下方法......

setLoading(Boolean / Object / String load,Boolean targetEl):Ext.LoadMask 此方法允许您在此组件的顶部显示或隐藏LoadMask。

参数 load:Boolean / Object / String 如果为True,则显示默认的LoadMask,将传递给LoadMask构造函数的配置对象,或显示的消息String。 False隐藏当前的LoadMask。 targetEl:Boolean 如果为True,则屏蔽此Component的targetEl而不是this.el.例如,在Panel上将此设置为true将导致仅屏蔽正文。 (默认为false) 返回 Ext.LoadMask 刚刚显示的LoadMask实例。

答案 1 :(得分:0)

您可以使用element.loadMask.loading属性

检查loadMask是否正在加载
xtype: 'button',
handler: function() {
    this.setLoading(true);
    if (!this.loadMask.loading) {
        //click action
    }
}