diff --git a/src/base.js b/src/base.js index f13aecd..9d08106 100644 --- a/src/base.js +++ b/src/base.js @@ -2,7 +2,7 @@ Base ==== - Includes functionality used to manipulate the xui object collection; things like iteration and set operations are included here. + Includes functionality used to manipulate the xui object collection. */ var undefined, @@ -51,35 +51,33 @@ xui.fn = xui.prototype = { extend ------ - Allows extension of xui's prototype with the members/methods of the provided object. + Extends XUI's prototype with the members of another object. ### syntax ### xui.extend( object ); - Call extend on the xui object to extend all xui instances with functionality and/or members of the passed-in object. - ### arguments ### - - object:object a JavaScript object whose members will be incorporated into xui's prototype + - object `Object` contains the members that will be added to XUI's prototype. ### example ### Given: - var thing = { - first : function() { return this[ 0 ]; }, - last : function() { return this[ this.length - 1 ]; } + var sugar = { + first: function() { return this[0]; }, + last: function() { return this[this.length - 1]; } } - We can extend xui's prototype with these methods by using `extend`: + We can extend xui's prototype with members of `sugar` by using `extend`: - xui.extend( thing ); + xui.extend(sugar); Now we can use `first` and `last` in all instances of xui: - var f = x$( '.someClass' ).first(); - var l = x$( '.differentClass' ).last(); + var f = x$('.button').first(); + var l = x$('.notice').last(); */ extend: function(o) { for (var i in o) { @@ -91,16 +89,16 @@ xui.fn = xui.prototype = { find ---- - Finds matching elements based on a query string. The global xui entry `x$` function is a reference to the `find` function. + Find the elements that match a query string. `x$` is an alias for `find`. ### syntax ### - x$(window).find( selector [, context] ); + x$( window ).find( selector, context ); ### arguments ### - - selector:string a CSS selector string to match elements to. - - context:HTMLElement an html element to use as the "root" element to search from. + - selector `String` is a CSS selector that will query for elements. + - context `HTMLElement` is the parent element to search from _(optional)_. ### example ### @@ -115,9 +113,9 @@ xui.fn = xui.prototype = {
  • 4
  • - We can select only specific list items by using `find`, as opposed to selecting off the document root: + We can select list items using `find`: - x$('li'); // returns all four list item elements. + x$('li'); // returns all four list item elements. x$('#second').find('li'); // returns list items "three" and "four" */ find: function(q, context) { @@ -178,7 +176,7 @@ xui.fn = xui.prototype = { ### syntax ### - x$(window).set( array ); + x$( window ).set( array ); */ set: function(elements) { var ret = xui(); @@ -190,20 +188,18 @@ xui.fn = xui.prototype = { /** reduce - --- + ------ Reduces the set of elements in the xui object to a unique set. ### syntax ### - x$(someSelector).reduce( [ elements [, toIndex ]] ); - - The elements parameter is optional - if not specified, will reduce the elements in the current xui object. + x$( window ).reduce( elements, index ); ### arguments ### - - elements:Array an array of elements to reduce (optional) - - toIndex:Number last index of elements to include in the reducing operation. + - elements `Array` is an array of elements to reduce _(optional)_. + - index `Number` is the last array index to include in the reduction. If unspecified, it will reduce all elements _(optional)_. */ reduce: function(elements, b) { var a = [], @@ -221,31 +217,29 @@ xui.fn = xui.prototype = { has --- - Has modifies the elements array and returns all the elements that match (has) a CSS selector. + Returns the elements that match a given CSS selector. ### syntax ### - x$(someSelector).has( query ); - - Behind the scenes, actually calls the filter method. + x$( window ).has( selector ); ### arguments ### - - query:string a CSS selector that will match all children of originally-selected xui collection + - selector `String` is a CSS selector that will match all children of the xui collection. ### example ### - Given + Given:
    -
    these ones
    -
    have an extra class
    +
    Item one
    +
    Item two
    - We can use xui like so + We can use `has` to select specific objects: - var divs = x$('div'); // we've got all four divs from above. - var someDivs = divs.has('.gotit'); // we've now got only the two divs with the class + var divs = x$('div'); // got all three divs. + var rounded = divs.has('.round'); // got two divs with the class .round */ has: function(q) { var list = xui(q); @@ -258,28 +252,32 @@ xui.fn = xui.prototype = { return found; }); }, + /** filter ------ - Both an internal utility function, but also allows developers to extend xui using custom filters + Extend XUI with custom filters. This is an interal utility function, but is also useful to developers. ### syntax ### - x$(someSelector).filter( functionHandle ); - - The `functionHandle` function will get invoked with `this` being the element being iterated on, - and the index passed in as a parameter. + x$( window ).filter( fn ); ### arguments ### - - functionHandle:Function a function reference that evaluates to true/false, determining which elements get included in the xui collection. + - fn `Function` is called for each element in the XUI collection. + + // `index` is the array index of the current element + function( index ) { + // `this` is the element iterated on + // return true to add element to new XUI collection + } ### example ### - Perhaps we'd want to filter input elements that are disabled: + Filter all the `` elements that are disabled: - x$('input').filter(function(i) { + x$('input').filter(function(index) { return this.checked; }); */ @@ -294,29 +292,31 @@ xui.fn = xui.prototype = { not --- - Not modifies the elements array and returns all the elements that DO NOT match a CSS Query - the opposite of has + The opposite of `has`. It modifies the elements and returns all of the elements that do __not__ match a CSS query. ### syntax ### - x$(someSelector).not( someOtherSelector ); + x$( window ).not( selector ); ### arguments ### - - someOtherSelector:string a CSS selector that elements should NOT match to. + - selector `String` a CSS selector for the elements that should __not__ be matched. ### example ### - Given + Given:
    -
    these ones
    -
    have an extra class
    +
    Item one
    +
    Item two
    +
    Item three
    +
    Item four
    - We can use xui like so + We can use `not` to select objects: - var divs = x$('div'); // we've got all four divs from above. - var someDivs = divs.not('.gotit'); // we've now got only the two divs _without_ the class "gotit" + var divs = x$('div'); // got all four divs. + var notRound = divs.not('.round'); // got two divs with classes .square and .shadow */ not: function(q) { var list = slice(this); @@ -333,21 +333,28 @@ xui.fn = xui.prototype = { each ---- - Element iterator (over the xui collection). + Element iterator for an XUI collection. ### syntax ### - x$(window).each( functionHandle ) + x$( window ).each( fn ) ### arguments ### - - functionHandle:Function callback function that will execute with each element being passed in as the `this` object and first parameter to callback + - fn `Function` callback that is called once for each element. + + // `element` is the current element + // `index` is the element index in the XUI collection + // `xui` is the XUI collection. + function( element, index, xui ) { + // `this` is the current element + } ### example ### - x$(someSelector).each(function(element, index, xui) { + x$('div').each(function(element, index, xui) { alert("Here's the " + index + " element: " + element); - }); + }); */ each: function(fn) { // we could compress this by using [].forEach.call - but we wouldn't be able to support