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

📄 component.js

📁 当前比较流行的,漂亮的JS框架,这里面用到的API文档
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*
 * Ext JS Library 2.0.2
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

/** * @class Ext.Component * @extends Ext.util.Observable * <p>Base class for all Ext components.  All subclasses of Component can automatically participate in the standard * Ext component lifecycle of creation, rendering and destruction.  They also have automatic support for basic hide/show * and enable/disable behavior.  Component allows any subclass to be lazy-rendered into any {@link Ext.Container} and * to be automatically registered with the {@link Ext.ComponentMgr} so that it can be referenced at any time via * {@link Ext#getCmp}.  All visual widgets that require rendering into a layout should subclass Component (or * {@link Ext.BoxComponent} if managed box model handling is required).</p> * <p>Every component has a specific xtype, which is its Ext-specific type name, along with methods for checking the * xtype like {@link #getXType} and {@link #isXType}. This is the list of all valid xtypes:</p> * <pre>xtype            Class-------------    ------------------box              Ext.BoxComponentbutton           Ext.Buttoncolorpalette     Ext.ColorPalettecomponent        Ext.Componentcontainer        Ext.Containercycle            Ext.CycleButtondataview         Ext.DataViewdatepicker       Ext.DatePickereditor           Ext.Editoreditorgrid       Ext.grid.EditorGridPanelgrid             Ext.grid.GridPanelpaging           Ext.PagingToolbarpanel            Ext.Panelprogress         Ext.ProgressBarsplitbutton      Ext.SplitButtontabpanel         Ext.TabPaneltreepanel        Ext.tree.TreePanelviewport         Ext.ViewPortwindow           Ext.WindowToolbar components---------------------------------------toolbar          Ext.Toolbartbbutton         Ext.Toolbar.Buttontbfill           Ext.Toolbar.Filltbitem           Ext.Toolbar.Itemtbseparator      Ext.Toolbar.Separatortbspacer         Ext.Toolbar.Spacertbsplit          Ext.Toolbar.SplitButtontbtext           Ext.Toolbar.TextItemForm components---------------------------------------form             Ext.FormPanelcheckbox         Ext.form.Checkboxcombo            Ext.form.ComboBoxdatefield        Ext.form.DateFieldfield            Ext.form.Fieldfieldset         Ext.form.FieldSethidden           Ext.form.Hiddenhtmleditor       Ext.form.HtmlEditornumberfield      Ext.form.NumberFieldradio            Ext.form.Radiotextarea         Ext.form.TextAreatextfield        Ext.form.TextFieldtimefield        Ext.form.TimeFieldtrigger          Ext.form.TriggerField</pre> * @constructor * @param {Ext.Element/String/Object} config The configuration options.  If an element is passed, it is set as the internal * element and its id used as the component id.  If a string is passed, it is assumed to be the id of an existing element * and is used as the component id.  Otherwise, it is assumed to be a standard config object and is applied to the component. */Ext.Component = function(config){    config = config || {};    if(config.initialConfig){        if(config.isAction){           // actions            this.baseAction = config;        }        config = config.initialConfig; // component cloning / action set up    }else if(config.tagName || config.dom || typeof config == "string"){ // element object        config = {applyTo: config, id: config.id || config};    }    /**     * This Component's initial configuration specification. Read-only.     * @type Object     * @property initialConfig     */    this.initialConfig = config;    Ext.apply(this, config);    this.addEvents(        /**         * @event disable         * Fires after the component is disabled.	     * @param {Ext.Component} this	     */        'disable',        /**         * @event enable         * Fires after the component is enabled.	     * @param {Ext.Component} this	     */        'enable',        /**         * @event beforeshow         * Fires before the component is shown. Return false to stop the show.	     * @param {Ext.Component} this	     */        'beforeshow',        /**         * @event show         * Fires after the component is shown.	     * @param {Ext.Component} this	     */        'show',        /**         * @event beforehide         * Fires before the component is hidden. Return false to stop the hide.	     * @param {Ext.Component} this	     */        'beforehide',        /**         * @event hide         * Fires after the component is hidden.	     * @param {Ext.Component} this	     */        'hide',        /**         * @event beforerender         * Fires before the component is rendered. Return false to stop the render.	     * @param {Ext.Component} this	     */        'beforerender',        /**         * @event render         * Fires after the component is rendered.	     * @param {Ext.Component} this	     */        'render',        /**         * @event beforedestroy         * Fires before the component is destroyed. Return false to stop the destroy.	     * @param {Ext.Component} this	     */        'beforedestroy',        /**         * @event destroy         * Fires after the component is destroyed.	     * @param {Ext.Component} this	     */        'destroy',        /**         * @event beforestaterestore         * Fires before the state of the component is restored. Return false to stop the restore.	     * @param {Ext.Component} this	     * @param {Object} state The hash of state values	     */        'beforestaterestore',        /**         * @event staterestore         * Fires after the state of the component is restored.	     * @param {Ext.Component} this	     * @param {Object} state The hash of state values	     */        'staterestore',        /**         * @event beforestatesave         * Fires before the state of the component is saved to the configured state provider. Return false to stop the save.	     * @param {Ext.Component} this	     * @param {Object} state The hash of state values	     */        'beforestatesave',        /**         * @event statesave         * Fires after the state of the component is saved to the configured state provider.	     * @param {Ext.Component} this	     * @param {Object} state The hash of state values	     */        'statesave'    );    this.getId();    Ext.ComponentMgr.register(this);    Ext.Component.superclass.constructor.call(this);    if(this.baseAction){        this.baseAction.addComponent(this);    }    this.initComponent();    if(this.plugins){        if(Ext.isArray(this.plugins)){            for(var i = 0, len = this.plugins.length; i < len; i++){                this.plugins[i].init(this);            }        }else{            this.plugins.init(this);        }    }    if(this.stateful !== false){        this.initState(config);    }    if(this.applyTo){        this.applyToMarkup(this.applyTo);        delete this.applyTo;    }else if(this.renderTo){        this.render(this.renderTo);        delete this.renderTo;    }};// privateExt.Component.AUTO_ID = 1000;Ext.extend(Ext.Component, Ext.util.Observable, {    /**     * @cfg {String} id     * The unique id of this component (defaults to an auto-assigned id).     */    /**     * @cfg {String/Object} autoEl     * A tag name or DomHelper spec to create an element with. This is intended to create shorthand     * utility components inline via JSON. It should not be used for higher level components which already create     * their own elements. Example usage:     * <pre><code>{xtype:'box', autoEl: 'div', cls:'my-class'}{xtype:'box', autoEl: {tag:'blockquote', html:'autoEl is cool!'}} // with DomHelper</code></pre>     */    /**     * @cfg {String} xtype     * The registered xtype to create. This config option is not used when passing     * a config object into a constructor. This config option is used only when     * lazy instantiation is being used, and a child item of a Container is being     * specified not as a fully instantiated Component, but as a <i>Component config     * object</i>. The xtype will be looked up at render time up to determine what     * type of child Component to create.<br><br>     * The predefined xtypes are listed {@link Ext.Component here}.     * <br><br>     * If you subclass Components to create your own Components, you may register     * them using {@link Ext.ComponentMgr#registerType} in order to be able to     * take advantage of lazy instantiation and rendering.     */    /**     * @cfg {String} cls     * An optional extra CSS class that will be added to this component's Element (defaults to '').  This can be     * useful for adding customized styles to the component or any of its children using standard CSS rules.     */    /**     * @cfg {String} style     * A custom style specification to be applied to this component's Element.  Should be a valid argument to     * {@link Ext.Element#applyStyles}.     */    /**     * @cfg {String} ctCls     * An optional extra CSS class that will be added to this component's container (defaults to '').  This can be     * useful for adding customized styles to the container or any of its children using standard CSS rules.     */    /**     * @cfg {Object/Array} plugins     * An object or array of objects that will provide custom functionality for this component.  The only     * requirement for a valid plugin is that it contain an init method that accepts a reference of type Ext.Component.     * When a component is created, if any plugins are available, the component will call the init method on each     * plugin, passing a reference to itself.  Each plugin can then call methods or respond to events on the     * component as needed to provide its functionality.     */    /**     * @cfg {Mixed} applyTo     * The id of the node, a DOM node or an existing Element corresponding to a DIV that is already present in     * the document that specifies some structural markup for this component.  When applyTo is used, constituent parts of     * the component can also be specified by id or CSS class name within the main element, and the component being created     * may attempt to create its subcomponents from that markup if applicable. Using this config, a call to render() is     * not required.  If applyTo is specified, any value passed for {@link #renderTo} will be ignored and the target     * element's parent node will automatically be used as the component's container.     */    /**     * @cfg {Mixed} renderTo     * The id of the node, a DOM node or an existing Element that will be the container to render this component into.     * Using this config, a call to render() is not required.     */    /**     * @cfg {Boolean} stateful     * A flag which causes the Component to attempt to restore the state of internal properties     * from a saved state on startup.<p>     * For state saving to work, the state manager's provider must have been set to an implementation     * of {@link Ext.state.Provider} which overrides the {@link Ext.state.Provider#set set}     * and {@link Ext.state.Provider#get get} methods to save and recall name/value pairs.     * A built-in implementation, {@link Ext.state.CookieProvider} is available.</p>     * <p>To set the state provider for the current page:</p>	     * <pre><code>Ext.state.Manager.setProvider(new Ext.state.CookieProvider());</code></pre>     * <p>Components attempt to save state when one of the events listed in the {@link #stateEvents}     * configuration fires.</p>     * <p>You can perform extra processing on state save and restore by attaching handlers to the     * {@link #beforestaterestore}, {@link staterestore}, {@link beforestatesave} and {@link statesave} events</p>     */    /**     * @cfg {String} stateId     * The unique id for this component to use for state management purposes (defaults to the component id).     * <p>See {@link #stateful} for an explanation of saving and restoring Component state.</p>     */    /* //internal - to be set by subclasses     * @cfg {Array} stateEvents     * An array of events that, when fired, should trigger this component to save its state (defaults to none).     * These can be any types of events supported by this component, including browser or custom events (e.g.,     * ['click', 'customerchange']).     * <p>See {@link #stateful} for an explanation of saving and restoring Component state.</p>     */    /**     * @cfg {String} disabledClass     * CSS class added to the component when it is disabled (defaults to "x-item-disabled").     */    disabledClass : "x-item-disabled",	/**	 * @cfg {Boolean} allowDomMove	 * Whether the component can move the Dom node when rendering (defaults to true).	 */    allowDomMove : true,	/**	 * @cfg {Boolean} autoShow	 * True if the component should check for hidden classes (e.g. 'x-hidden' or 'x-hide-display') and remove	 * them on render (defaults to false).	 */    autoShow : false,    /**     * @cfg {String} hideMode     * How this component should hidden. Supported values are "visibility" (css visibility), "offsets" (negative     * offset position) and "display" (css display) - defaults to "display".     */    hideMode: 'display',    /**     * @cfg {Boolean} hideParent     * True to hide and show the component's container when hide/show is called on the component, false to hide     * and show the component itself (defaults to false).  For example, this can be used as a shortcut for a hide     * button on a window by setting hide:true on the button when adding it to its parent container.     */    hideParent: false,    /**     * The component's owner {@link Ext.Container} (defaults to undefined, and is set automatically when     * the component is added to a container).  Read-only.     * @type Ext.Container     * @property ownerCt     */    /**     * True if this component is hidden. Read-only.     * @type Boolean     * @property     */    hidden : false,    /**     * True if this component is disabled. Read-only.     * @type Boolean     * @property     */    disabled : false,    /**     * True if this component has been rendered. Read-only.     * @type Boolean     * @property     */    rendered : false,    // private    ctype : "Ext.Component",    // private    actionMode : "el",    // private    getActionEl : function(){        return this[this.actionMode];    },    /* // protected     * Function to be implemented by Component subclasses to be part of standard component initialization flow (it is empty by default).     * <pre><code>// Traditional constructor:Ext.Foo = function(config){	// call superclass constructor:    Ext.Foo.superclass.constructor.call(this, config);    this.addEvents({		// add events    });};Ext.extend(Ext.Foo, Ext.Bar, {   // class body}// initComponent replaces the constructor:Ext.Foo = Ext.extend(Ext.Bar, {    initComponent : function(){		// call superclass initComponent        Ext.Container.superclass.initComponent.call(this);        this.addEvents({            // add events        });    }}</code></pre>     */    initComponent : Ext.emptyFn,    /**     * If this is a lazy rendering component, render it to its container element.     * @param {Mixed} container (optional) The element this component should be rendered into. If it is being     * applied to existing markup, this should be left off.     * @param {String/Number} position (optional) The element ID or DOM node index within the container <b>before</b>     * which this component will be inserted (defaults to appending to the end of the container)     */    render : function(container, position){        if(!this.rendered && this.fireEvent("beforerender", this) !== false){            if(!container && this.el){                this.el = Ext.get(this.el);                container = this.el.dom.parentNode;                this.allowDomMove = false;            }            this.container = Ext.get(container);            if(this.ctCls){                this.container.addClass(this.ctCls);            }            this.rendered = true;            if(position !== undefined){                if(typeof position == 'number'){                    position = this.container.dom.childNodes[position];                }else{                    position = Ext.getDom(position);                }            }            this.onRender(this.container, position || null);

⌨️ 快捷键说明

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