CompositeElement.js
上传用户:dawnssy
上传日期:2022-08-06
资源大小:9345k
文件大小:5k
源码类别:

JavaScript

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.1.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.CompositeElement
  3.  * @extends Ext.CompositeElementLite
  4.  * <p>This class encapsulates a <i>collection</i> of DOM elements, providing methods to filter
  5.  * members, or to perform collective actions upon the whole set.</p>
  6.  * <p>Although they are not listed, this class supports all of the methods of {@link Ext.Element} and
  7.  * {@link Ext.Fx}. The methods from these classes will be performed on all the elements in this collection.</p>
  8.  * <p>All methods return <i>this</i> and can be chained.</p>
  9.  * Usage:
  10. <pre><code>
  11. var els = Ext.select("#some-el div.some-class", true);
  12. // or select directly from an existing element
  13. var el = Ext.get('some-el');
  14. el.select('div.some-class', true);
  15. els.setWidth(100); // all elements become 100 width
  16. els.hide(true); // all elements fade out and hide
  17. // or
  18. els.setWidth(100).hide(true);
  19. </code></pre>
  20.  */
  21. Ext.CompositeElement = function(els, root){
  22.     this.elements = [];
  23.     this.add(els, root);
  24. };
  25. Ext.extend(Ext.CompositeElement, Ext.CompositeElementLite, {
  26.     
  27.     // private
  28.     getElement : function(el){
  29.         // In this case just return it, since we already have a reference to it
  30.         return el;
  31.     },
  32.     
  33.     // private
  34.     transformElement : function(el){
  35.         return Ext.get(el);
  36.     }
  37.     /**
  38.     * Adds elements to this composite.
  39.     * @param {String/Array} els A string CSS selector, an array of elements or an element
  40.     * @return {CompositeElement} this
  41.     */
  42.     /**
  43.      * Returns the Element object at the specified index
  44.      * @param {Number} index
  45.      * @return {Ext.Element}
  46.      */
  47.     /**
  48.      * Iterates each <code>element</code> in this <code>composite</code>
  49.      * calling the supplied function using {@link Ext#each}.
  50.      * @param {Function} fn The function to be called with each
  51.      * <code>element</code>. If the supplied function returns <tt>false</tt>,
  52.      * iteration stops. This function is called with the following arguments:
  53.      * <div class="mdetail-params"><ul>
  54.      * <li><code>element</code> : <i>Ext.Element</i><div class="sub-desc">The element at the current <code>index</code>
  55.      * in the <code>composite</code></div></li>
  56.      * <li><code>composite</code> : <i>Object</i> <div class="sub-desc">This composite.</div></li>
  57.      * <li><code>index</code> : <i>Number</i> <div class="sub-desc">The current index within the <code>composite</code> </div></li>
  58.      * </ul></div>
  59.      * @param {Object} scope (optional) The scope (<code><this</code> reference) in which the specified function is executed.
  60.      * Defaults to the <code>element</code> at the current <code>index</code>
  61.      * within the composite.
  62.      * @return {CompositeElement} this
  63.      */
  64. });
  65. /**
  66.  * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods
  67.  * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or
  68.  * {@link Ext.CompositeElementLite CompositeElementLite} object.
  69.  * @param {String/Array} selector The CSS selector or an array of elements
  70.  * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object)
  71.  * @param {HTMLElement/String} root (optional) The root element of the query or id of the root
  72.  * @return {CompositeElementLite/CompositeElement}
  73.  * @member Ext.Element
  74.  * @method select
  75.  */
  76. Ext.Element.select = function(selector, unique, root){
  77.     var els;
  78.     if(typeof selector == "string"){
  79.         els = Ext.Element.selectorFunction(selector, root);
  80.     }else if(selector.length !== undefined){
  81.         els = selector;
  82.     }else{
  83.         throw "Invalid selector";
  84.     }
  85.     return (unique === true) ? new Ext.CompositeElement(els) : new Ext.CompositeElementLite(els);
  86. };
  87. /**
  88.  * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods
  89.  * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or
  90.  * {@link Ext.CompositeElementLite CompositeElementLite} object.
  91.  * @param {String/Array} selector The CSS selector or an array of elements
  92.  * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object)
  93.  * @param {HTMLElement/String} root (optional) The root element of the query or id of the root
  94.  * @return {CompositeElementLite/CompositeElement}
  95.  * @member Ext.Element
  96.  * @method select
  97.  */
  98. Ext.select = Ext.Element.select;