javascript – 可以请详细解释.el,getEl(),Ext.get()吗?

我是Sencha ExtJs的新手

我不明白Ext.getCmp(‘component_id’)行.getEl().hide();.什么是.getEl()的使用.我可以写Ext.getCmp(‘component_id’).hide();直?

并解释我关于.el,Ext.get()也.

解决方法

Ext.getCmp()VS Ext.get()

Ext.getCmp()在ExtJS组件树中找到一个现有的(已创建)组件.请注意,不要使用它.依靠ComponentQuery而不是.

Ext.get()通过id找到一个DOM元素.例如:

<html>
    <body>
        <div id="target">Hello,world!</div>
    </body>
</html>

ext.get(‘target’)将返回div#target DOM元素.

我个人从不使用任何一个.相反,我使用ComponentQuery定位组件,然后检索其DOM元素,如下所述.

MyCmp.getEl()VS MyCmp.el

两者都只是检索MyCmp组件的顶级DOM元素.

当前版本的ExtJS(4.2.1)定义了.getEl()函数,如下所示:

MyCmp.getEl = function () {
    return this.el;
}

这意味着MyCmp.getEl()和MyCmp.el绝对相等.

使用.el,如果你喜欢保持你的代码很短,甜蜜.然而,.getEl()可能会在以后的情况下使用ExtJS向组件的DOM元素检索过程添加额外的逻辑(例如,先检查它是否存在).

我喜欢.el.

MyCmp.hide()VS MyCmp.el.hide()

MyCmp.hide()和MyCmp.el.hide()是两个不同的功能.当前版本的ExtJS(4.2.1)定义如下:

MyCmp.hide = function (animateTarget,cb,scope) {
    var me = this,continueHide;
    if (me.pendingShow) {
        delete me.pendingShow;
    } if (!(me.rendered && !me.isVisible())) {
        continueHide = (me.fireEvent('beforehide',me) !== false);
        if (me.hierarchicallyHidden || continueHide) {
            me.hidden = true;
            me.getHierarchyState().hidden = true;
            if (me.rendered) {
                me.onHide.apply(me,arguments);
            }
        }
    }
    return me;
}

MyCmp.el.hide = function (animate){
    if (typeof animate == 'string'){
        this.setVisible(false,animate);
        return this;
    }
    this.setVisible(false,this.anim(animate));
    return this;
}

然而,这两个功能似乎都产生了相同的结果.他们只是添加一个style =“display:none;”到组件的DOM元素.

我使用MyCmp.hide().

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...