X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/CompositeElement.html diff --git a/docs/source/CompositeElement.html b/docs/source/CompositeElement.html new file mode 100644 index 00000000..2d26e9c6 --- /dev/null +++ b/docs/source/CompositeElement.html @@ -0,0 +1,139 @@ + + + The source code + + + + +
/** + * @class Ext.CompositeElement + * @extends Ext.CompositeElementLite + * Standard composite class. Creates a Ext.Element for every element in the collection. + *

+ * NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element + * actions will be performed on all the elements in this collection. + *

+ * All methods return this and can be chained. +

+ var els = Ext.select("#some-el div.some-class", true);
+ // or select directly from an existing element
+ var el = Ext.get('some-el');
+ el.select('div.some-class', true);
+
+ els.setWidth(100); // all elements become 100 width
+ els.hide(true); // all elements fade out and hide
+ // or
+ els.setWidth(100).hide(true);
+ 
+ */ +Ext.CompositeElement = function(els, root){ + this.elements = []; + this.add(els, root); +}; + +Ext.extend(Ext.CompositeElement, Ext.CompositeElementLite, { + invoke : function(fn, args){ + Ext.each(this.elements, function(e) { + Ext.Element.prototype[fn].apply(e, args); + }); + return this; + }, + +
/** + * Adds elements to this composite. + * @param {String/Array} els A string CSS selector, an array of elements or an element + * @return {CompositeElement} this + */ + add : function(els, root){ + if(!els){ + return this; + } + if(typeof els == "string"){ + els = Ext.Element.selectorFunction(els, root); + } + var yels = this.elements; + Ext.each(els, function(e) { + yels.push(Ext.get(e)); + }); + return this; + }, + +
/** + * Returns the Element object at the specified index + * @param {Number} index + * @return {Ext.Element} + */ + item : function(index){ + return this.elements[index] || null; + }, + + + indexOf : function(el){ + return this.elements.indexOf(Ext.get(el)); + }, + + filter : function(selector){ + var me = this, + out = []; + + Ext.each(me.elements, function(el) { + if(el.is(selector)){ + out.push(Ext.get(el)); + } + }); + me.elements = out; + return me; + }, + +
/** + * Calls the passed function passing (el, this, index) for each element in this composite. + * @param {Function} fn The function to call + * @param {Object} scope (optional) The this object (defaults to the element) + * @return {CompositeElement} this + */ + each : function(fn, scope){ + Ext.each(this.elements, function(e,i) { + return fn.call(scope || e, e, this, i); + }, this); + return this; + } +}); + +/** + * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods + * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or + * {@link Ext.CompositeElementLite CompositeElementLite} object. + * @param {String/Array} selector The CSS selector or an array of elements + * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object) + * @param {HTMLElement/String} root (optional) The root element of the query or id of the root + * @return {CompositeElementLite/CompositeElement} + * @member Ext.Element + * @method select + */ +Ext.Element.select = function(selector, unique, root){ + var els; + if(typeof selector == "string"){ + els = Ext.Element.selectorFunction(selector, root); + }else if(selector.length !== undefined){ + els = selector; + }else{ + throw "Invalid selector"; + } + + return (unique === true) ? new Ext.CompositeElement(els) : new Ext.CompositeElementLite(els); +}; + +
/** + * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods + * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or + * {@link Ext.CompositeElementLite CompositeElementLite} object. + * @param {String/Array} selector The CSS selector or an array of elements + * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object) + * @param {HTMLElement/String} root (optional) The root element of the query or id of the root + * @return {CompositeElementLite/CompositeElement} + * @member Ext.Element + * @method select + */ +Ext.select = Ext.Element.select;
+ + \ No newline at end of file