⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 component.js

📁 当前比较流行的,漂亮的JS框架,这里面用到的API文档
💻 JS
📖 第 1 页 / 共 2 页
字号:
            if(this.autoShow){                this.el.removeClass(['x-hidden','x-hide-' + this.hideMode]);            }            if(this.cls){                this.el.addClass(this.cls);                delete this.cls;            }            if(this.style){                this.el.applyStyles(this.style);                delete this.style;            }            this.fireEvent("render", this);            this.afterRender(this.container);            if(this.hidden){                this.hide();            }            if(this.disabled){                this.disable();            }            this.initStateEvents();        }        return this;    },    // private    initState : function(config){        if(Ext.state.Manager){            var state = Ext.state.Manager.get(this.stateId || this.id);            if(state){                if(this.fireEvent('beforestaterestore', this, state) !== false){                    this.applyState(state);                    this.fireEvent('staterestore', this, state);                }            }        }    },    // private    initStateEvents : function(){        if(this.stateEvents){            for(var i = 0, e; e = this.stateEvents[i]; i++){                this.on(e, this.saveState, this, {delay:100});            }        }    },    // private    applyState : function(state, config){        if(state){            Ext.apply(this, state);        }    },    // private    getState : function(){        return null;    },    // private    saveState : function(){        if(Ext.state.Manager){            var state = this.getState();            if(this.fireEvent('beforestatesave', this, state) !== false){                Ext.state.Manager.set(this.stateId || this.id, state);                this.fireEvent('statesave', this, state);            }        }    },    /**     * Apply this component to existing markup that is valid. With this function, no call to render() is required.     * @param {String/HTMLElement} el      */    applyToMarkup : function(el){        this.allowDomMove = false;        this.el = Ext.get(el);        this.render(this.el.dom.parentNode);    },    /**     * Adds a CSS class to the component's underlying element.     * @param {string} cls The CSS class name to add     */    addClass : function(cls){        if(this.el){            this.el.addClass(cls);        }else{            this.cls = this.cls ? this.cls + ' ' + cls : cls;        }    },    /**     * Removes a CSS class from the component's underlying element.     * @param {string} cls The CSS class name to remove     */    removeClass : function(cls){        if(this.el){            this.el.removeClass(cls);        }else if(this.cls){            this.cls = this.cls.split(' ').remove(cls).join(' ');        }    },    // private    // default function is not really useful    onRender : function(ct, position){        if(this.autoEl){            if(typeof this.autoEl == 'string'){                this.el = document.createElement(this.autoEl);            }else{                var div = document.createElement('div');                Ext.DomHelper.overwrite(div, this.autoEl);                this.el = div.firstChild;            }            if (!this.el.id) {            	this.el.id = this.getId();            }        }        if(this.el){            this.el = Ext.get(this.el);            if(this.allowDomMove !== false){                ct.dom.insertBefore(this.el.dom, position);            }        }    },    // private    getAutoCreate : function(){        var cfg = typeof this.autoCreate == "object" ?                      this.autoCreate : Ext.apply({}, this.defaultAutoCreate);        if(this.id && !cfg.id){            cfg.id = this.id;        }        return cfg;    },    // private    afterRender : Ext.emptyFn,    /**     * Destroys this component by purging any event listeners, removing the component's element from the DOM,     * removing the component from its {@link Ext.Container} (if applicable) and unregistering it from     * {@link Ext.ComponentMgr}.  Destruction is generally handled automatically by the framework and this method     * should usually not need to be called directly.     */    destroy : function(){        if(this.fireEvent("beforedestroy", this) !== false){            this.beforeDestroy();            if(this.rendered){                this.el.removeAllListeners();                this.el.remove();                if(this.actionMode == "container"){                    this.container.remove();                }            }            this.onDestroy();            Ext.ComponentMgr.unregister(this);            this.fireEvent("destroy", this);            this.purgeListeners();        }    },	// private    beforeDestroy : Ext.emptyFn,	// private    onDestroy  : Ext.emptyFn,    /**     * Returns the underlying {@link Ext.Element}.     * @return {Ext.Element} The element     */    getEl : function(){        return this.el;    },    /**     * Returns the id of this component.     * @return {String}     */    getId : function(){        return this.id || (this.id = "ext-comp-" + (++Ext.Component.AUTO_ID));    },    /**     * Returns the item id of this component.     * @return {String}     */    getItemId : function(){        return this.itemId || this.getId();    },    /**     * Try to focus this component.     * @param {Boolean} selectText (optional) If applicable, true to also select the text in this component     * @param {Boolean/Number} delay (optional) Delay the focus this number of milliseconds (true for 10 milliseconds)     * @return {Ext.Component} this     */    focus : function(selectText, delay){        if(delay){            this.focus.defer(typeof delay == 'number' ? delay : 10, this, [selectText, false]);            return;        }        if(this.rendered){            this.el.focus();            if(selectText === true){                this.el.dom.select();            }        }        return this;    },    // private    blur : function(){        if(this.rendered){            this.el.blur();        }        return this;    },    /**     * Disable this component.     * @return {Ext.Component} this     */    disable : function(){        if(this.rendered){            this.onDisable();        }        this.disabled = true;        this.fireEvent("disable", this);        return this;    },	// private    onDisable : function(){        this.getActionEl().addClass(this.disabledClass);        this.el.dom.disabled = true;    },    /**     * Enable this component.     * @return {Ext.Component} this     */    enable : function(){        if(this.rendered){            this.onEnable();        }        this.disabled = false;        this.fireEvent("enable", this);        return this;    },	// private    onEnable : function(){        this.getActionEl().removeClass(this.disabledClass);        this.el.dom.disabled = false;    },    /**     * Convenience function for setting disabled/enabled by boolean.     * @param {Boolean} disabled     */    setDisabled : function(disabled){        this[disabled ? "disable" : "enable"]();    },    /**     * Show this component.     * @return {Ext.Component} this     */    show: function(){        if(this.fireEvent("beforeshow", this) !== false){            this.hidden = false;            if(this.autoRender){                this.render(typeof this.autoRender == 'boolean' ? Ext.getBody() : this.autoRender);            }            if(this.rendered){                this.onShow();            }            this.fireEvent("show", this);        }        return this;    },    // private    onShow : function(){        if(this.hideParent){            this.container.removeClass('x-hide-' + this.hideMode);        }else{            this.getActionEl().removeClass('x-hide-' + this.hideMode);        }    },    /**     * Hide this component.     * @return {Ext.Component} this     */    hide: function(){        if(this.fireEvent("beforehide", this) !== false){            this.hidden = true;            if(this.rendered){                this.onHide();            }            this.fireEvent("hide", this);        }        return this;    },    // private    onHide : function(){        if(this.hideParent){            this.container.addClass('x-hide-' + this.hideMode);        }else{            this.getActionEl().addClass('x-hide-' + this.hideMode);        }    },    /**     * Convenience function to hide or show this component by boolean.     * @param {Boolean} visible True to show, false to hide     * @return {Ext.Component} this     */    setVisible: function(visible){        if(visible) {            this.show();        }else{            this.hide();        }        return this;    },    /**     * Returns true if this component is visible.     */    isVisible : function(){        return this.rendered && this.getActionEl().isVisible();    },    /**     * Clone the current component using the original config values passed into this instance by default.     * @param {Object} overrides A new config containing any properties to override in the cloned version.     * An id property can be passed on this object, otherwise one will be generated to avoid duplicates.     * @return {Ext.Component} clone The cloned copy of this component     */    cloneConfig : function(overrides){        overrides = overrides || {};        var id = overrides.id || Ext.id();        var cfg = Ext.applyIf(overrides, this.initialConfig);        cfg.id = id; // prevent dup id        return new this.constructor(cfg);    },    /**     * Gets the xtype for this component as registered with {@link Ext.ComponentMgr}. For a list of all     * available xtypes, see the {@link Ext.Component} header. Example usage:     * <pre><code>var t = new Ext.form.TextField();alert(t.getXType());  // alerts 'textfield'</code></pre>     * @return {String} The xtype     */    getXType : function(){        return this.constructor.xtype;    },    /**     * Tests whether or not this component is of a specific xtype. This can test whether this component is descended     * from the xtype (default) or whether it is directly of the xtype specified (shallow = true). For a list of all     * available xtypes, see the {@link Ext.Component} header. Example usage:     * <pre><code>var t = new Ext.form.TextField();var isText = t.isXType('textfield');        // truevar isBoxSubclass = t.isXType('box');       // true, descended from BoxComponentvar isBoxInstance = t.isXType('box', true); // false, not a direct BoxComponent instance</code></pre>     * @param {String} xtype The xtype to check for this component     * @param {Boolean} shallow (optional) False to check whether this component is descended from the xtype (this is     * the default), or true to check whether this component is directly of the specified xtype.     */    isXType : function(xtype, shallow){        return !shallow ?               ('/' + this.getXTypes() + '/').indexOf('/' + xtype + '/') != -1 :                this.constructor.xtype == xtype;    },    /**     * Returns this component's xtype hierarchy as a slash-delimited string. For a list of all     * available xtypes, see the {@link Ext.Component} header. Example usage:     * <pre><code>var t = new Ext.form.TextField();alert(t.getXTypes());  // alerts 'component/box/field/textfield'</pre></code>     * @return {String} The xtype hierarchy string     */    getXTypes : function(){        var tc = this.constructor;        if(!tc.xtypes){            var c = [], sc = this;            while(sc && sc.constructor.xtype){                c.unshift(sc.constructor.xtype);                sc = sc.constructor.superclass;            }            tc.xtypeChain = c;            tc.xtypes = c.join('/');        }        return tc.xtypes;    },    /**     * Find a container above this component at any level by a custom function. If the passed function returns     * true, the container will be returned. The passed function is called with the arguments (container, this component).     * @param {Function} fcn     * @param {Object} scope (optional)     * @return {Array} Array of Ext.Components     */    findParentBy: function(fn) {        for (var p = this.ownerCt; (p != null) && !fn(p, this); p = p.ownerCt);        return p || null;    },    /**     * Find a container above this component at any level by xtype or class     * @param {String/Class} xtype The xtype string for a component, or the class of the component directly     * @return {Container} The found container     */    findParentByType: function(xtype) {        return typeof xtype == 'function' ?            this.findParentBy(function(p){                return p.constructor === xtype;            }) :            this.findParentBy(function(p){                return p.constructor.xtype === xtype;            });    }});Ext.reg('component', Ext.Component);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -