data tables are going to need some work yet, but the other stuff seems to be working 100%
694 lines
71 KiB
HTML
694 lines
71 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: element Element.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
|
|
<h3>element <span class="subtitle">2.6.0</span></h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_element.html">element</a>
|
|
|
|
> Element.js (source view)
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form name="yui-classopts-form">
|
|
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 #classopts { display:none; }
|
|
</style>
|
|
<div class="highlight" ><pre><span class="o">(</span><span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="c">// internal shorthand</span>
|
|
<span class="c"></span><span class="k">var</span> <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
|
|
<span class="nx">AttributeProvider</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">AttributeProvider</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Element provides an wrapper object to simplify adding</span>
|
|
<span class="c"> * event listeners, using dom methods, and managing attributes. </span>
|
|
<span class="c"> * @module element</span>
|
|
<span class="c"> * @namespace YAHOO.util</span>
|
|
<span class="c"> * @requires yahoo, dom, event</span>
|
|
<span class="c"> * @beta</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Element provides an wrapper object to simplify adding</span>
|
|
<span class="c"> * event listeners, using dom methods, and managing attributes. </span>
|
|
<span class="c"> * @class Element</span>
|
|
<span class="c"> * @uses YAHOO.util.AttributeProvider</span>
|
|
<span class="c"> * @constructor</span>
|
|
<span class="c"> * @param el {HTMLElement | String} The html element that </span>
|
|
<span class="c"> * represents the Element.</span>
|
|
<span class="c"> * @param {Object} map A key-value map of initial config names and values</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Element</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">map</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">arguments</span><span class="o">.</span><span class="nx">length</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">init</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">map</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Element</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Dom events supported by the Element instance.</span>
|
|
<span class="c"> * @property DOM_EVENTS</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">DOM_EVENTS</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method appendChild</span>
|
|
<span class="c"> * @param {YAHOO.util.Element || HTMLElement} child The element to append. </span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">appendChild</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">child</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">child</span> <span class="o">=</span> <span class="nx">child</span><span class="o">.</span><span class="nx">get</span> <span class="o">?</span> <span class="nx">child</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">child</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">child</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method getElementsByTagName</span>
|
|
<span class="c"> * @param {String} tag The tagName to collect</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getElementsByTagName</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">tag</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">getElementsByTagName</span><span class="o">(</span><span class="nx">tag</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method hasChildNodes</span>
|
|
<span class="c"> * @return {Boolean} Whether or not the element has childNodes</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hasChildNodes</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">hasChildNodes</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method insertBefore</span>
|
|
<span class="c"> * @param {HTMLElement} element The HTMLElement to insert</span>
|
|
<span class="c"> * @param {HTMLElement} before The HTMLElement to insert</span>
|
|
<span class="c"> * the element before.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">insertBefore</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">element</span><span class="o">,</span> <span class="nx">before</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">element</span> <span class="o">=</span> <span class="nx">element</span><span class="o">.</span><span class="nx">get</span> <span class="o">?</span> <span class="nx">element</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">element</span><span class="o">;</span>
|
|
<span class="nx">before</span> <span class="o">=</span> <span class="o">(</span><span class="nx">before</span> <span class="o">&&</span> <span class="nx">before</span><span class="o">.</span><span class="nx">get</span><span class="o">)</span> <span class="o">?</span> <span class="nx">before</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">before</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">element</span><span class="o">,</span> <span class="nx">before</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method removeChild</span>
|
|
<span class="c"> * @param {HTMLElement} child The HTMLElement to remove</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeChild</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">child</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">child</span> <span class="o">=</span> <span class="nx">child</span><span class="o">.</span><span class="nx">get</span> <span class="o">?</span> <span class="nx">child</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">child</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">removeChild</span><span class="o">(</span><span class="nx">child</span><span class="o">);</span>
|
|
<span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for HTMLElement method.</span>
|
|
<span class="c"> * @method replaceChild</span>
|
|
<span class="c"> * @param {HTMLElement} newNode The HTMLElement to insert</span>
|
|
<span class="c"> * @param {HTMLElement} oldNode The HTMLElement to replace</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">replaceChild</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">newNode</span><span class="o">,</span> <span class="nx">oldNode</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">newNode</span> <span class="o">=</span> <span class="nx">newNode</span><span class="o">.</span><span class="nx">get</span> <span class="o">?</span> <span class="nx">newNode</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">newNode</span><span class="o">;</span>
|
|
<span class="nx">oldNode</span> <span class="o">=</span> <span class="nx">oldNode</span><span class="o">.</span><span class="nx">get</span> <span class="o">?</span> <span class="nx">oldNode</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">oldNode</span><span class="o">;</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">).</span><span class="nx">replaceChild</span><span class="o">(</span><span class="nx">newNode</span><span class="o">,</span> <span class="nx">oldNode</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Registers Element specific attributes.</span>
|
|
<span class="c"> * @method initAttributes</span>
|
|
<span class="c"> * @param {Object} map A key-value map of initial attribute configs</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initAttributes</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">map</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Adds a listener for the given event. These may be DOM or </span>
|
|
<span class="c"> * customEvent listeners. Any event that is fired via fireEvent</span>
|
|
<span class="c"> * can be listened for. All handlers receive an event object. </span>
|
|
<span class="c"> * @method addListener</span>
|
|
<span class="c"> * @param {String} type The name of the event to listen for</span>
|
|
<span class="c"> * @param {Function} fn The handler to call when the event fires</span>
|
|
<span class="c"> * @param {Any} obj A variable to pass to the handler</span>
|
|
<span class="c"> * @param {Object} scope The object to use for the scope of the handler </span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">addListener</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">,</span> <span class="nx">obj</span><span class="o">,</span> <span class="nx">scope</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="nx">scope</span> <span class="o">=</span> <span class="nx">scope</span> <span class="o">||</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'id'</span><span class="o">)</span> <span class="o">||</span> <span class="nx">el</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_events</span><span class="o">[</span><span class="nx">type</span><span class="o">])</span> <span class="o">{</span> <span class="c">// create on the fly</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span> <span class="k">this</span><span class="o">.</span><span class="nx">DOM_EVENTS</span><span class="o">[</span><span class="nx">type</span><span class="o">]</span> <span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">addListener</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">type</span><span class="o">,</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">srcElement</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">e</span><span class="o">.</span><span class="nx">target</span><span class="o">)</span> <span class="o">{</span> <span class="c">// supplement IE with target</span>
|
|
<span class="c"></span> <span class="nx">e</span><span class="o">.</span><span class="nx">target</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">srcElement</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">self</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">e</span><span class="o">);</span>
|
|
<span class="o">},</span> <span class="nx">obj</span><span class="o">,</span> <span class="nx">scope</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">EventProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span> <span class="c">// notify via customEvent</span>
|
|
<span class="c"></span> <span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Alias for addListener</span>
|
|
<span class="c"> * @method on</span>
|
|
<span class="c"> * @param {String} type The name of the event to listen for</span>
|
|
<span class="c"> * @param {Function} fn The function call when the event fires</span>
|
|
<span class="c"> * @param {Any} obj A variable to pass to the handler</span>
|
|
<span class="c"> * @param {Object} scope The object to use for the scope of the handler </span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">on</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">addListener</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span> <span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Alias for addListener</span>
|
|
<span class="c"> * @method subscribe</span>
|
|
<span class="c"> * @param {String} type The name of the event to listen for</span>
|
|
<span class="c"> * @param {Function} fn The function call when the event fires</span>
|
|
<span class="c"> * @param {Any} obj A variable to pass to the handler</span>
|
|
<span class="c"> * @param {Object} scope The object to use for the scope of the handler </span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">subscribe</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">addListener</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span> <span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Remove an event listener</span>
|
|
<span class="c"> * @method removeListener</span>
|
|
<span class="c"> * @param {String} type The name of the event to listen for</span>
|
|
<span class="c"> * @param {Function} fn The function call when the event fires</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeListener</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">fn</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method addClass</span>
|
|
<span class="c"> * @param {String} className The className to add</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">addClass</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">className</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">),</span> <span class="nx">className</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method getElementsByClassName</span>
|
|
<span class="c"> * @param {String} className The className to collect</span>
|
|
<span class="c"> * @param {String} tag (optional) The tag to use in</span>
|
|
<span class="c"> * conjunction with class name</span>
|
|
<span class="c"> * @return {Array} Array of HTMLElements</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getElementsByClassName</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">className</span><span class="o">,</span> <span class="nx">tag</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsByClassName</span><span class="o">(</span><span class="nx">className</span><span class="o">,</span> <span class="nx">tag</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method hasClass</span>
|
|
<span class="c"> * @param {String} className The className to add</span>
|
|
<span class="c"> * @return {Boolean} Whether or not the element has the class name</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hasClass</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">className</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">),</span> <span class="nx">className</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method removeClass</span>
|
|
<span class="c"> * @param {String} className The className to remove</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">removeClass</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">className</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">),</span> <span class="nx">className</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method replaceClass</span>
|
|
<span class="c"> * @param {String} oldClassName The className to replace</span>
|
|
<span class="c"> * @param {String} newClassName The className to add</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">replaceClass</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">oldClassName</span><span class="o">,</span> <span class="nx">newClassName</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">replaceClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">),</span>
|
|
<span class="nx">oldClassName</span><span class="o">,</span> <span class="nx">newClassName</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method setStyle</span>
|
|
<span class="c"> * @param {String} property The style property to set</span>
|
|
<span class="c"> * @param {String} value The value to apply to the style property</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setStyle</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">property</span><span class="o">,</span> <span class="nx">value</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_queue</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_queue</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="o">[</span><span class="s1">'setStyle'</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">property</span><span class="o">,</span> <span class="nx">value</span><span class="o">);</span> <span class="c">// TODO: always queuing?</span>
|
|
<span class="c"></span> <span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Wrapper for Dom method.</span>
|
|
<span class="c"> * @method getStyle</span>
|
|
<span class="c"> * @param {String} property The style property to retrieve</span>
|
|
<span class="c"> * @return {String} The current value of the property</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getStyle</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">property</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">),</span> <span class="nx">property</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Apply any queued set calls.</span>
|
|
<span class="c"> * @method fireQueue</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">fireQueue</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">queue</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_queue</span><span class="o">;</span>
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">queue</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="o">;</span> <span class="o">++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">[</span><span class="nx">queue</span><span class="o">[</span><span class="nx">i</span><span class="o">][</span><span class="m">0</span><span class="o">]].</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">queue</span><span class="o">[</span><span class="nx">i</span><span class="o">][</span><span class="m">1</span><span class="o">]);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Appends the HTMLElement into either the supplied parentNode.</span>
|
|
<span class="c"> * @method appendTo</span>
|
|
<span class="c"> * @param {HTMLElement | Element} parentNode The node to append to</span>
|
|
<span class="c"> * @param {HTMLElement | Element} before An optional node to insert before</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">appendTo</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">parent</span><span class="o">,</span> <span class="nx">before</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">parent</span> <span class="o">=</span> <span class="o">(</span><span class="nx">parent</span><span class="o">.</span><span class="nx">get</span><span class="o">)</span> <span class="o">?</span> <span class="nx">parent</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">parent</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s1">'beforeAppendTo'</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">type</span><span class="o">:</span> <span class="s1">'beforeAppendTo'</span><span class="o">,</span>
|
|
<span class="nx">target</span><span class="o">:</span> <span class="nx">parent</span>
|
|
<span class="o">});</span>
|
|
|
|
|
|
<span class="nx">before</span> <span class="o">=</span> <span class="o">(</span><span class="nx">before</span> <span class="o">&&</span> <span class="nx">before</span><span class="o">.</span><span class="nx">get</span><span class="o">)</span> <span class="o">?</span>
|
|
<span class="nx">before</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">)</span> <span class="o">:</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">before</span><span class="o">);</span>
|
|
<span class="k">var</span> <span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">element</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'appendTo failed: element not available'</span><span class="o">,</span>
|
|
<span class="s1">'error'</span><span class="o">,</span> <span class="s1">'Element'</span><span class="o">);</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'appendTo failed: parent not available'</span><span class="o">,</span>
|
|
<span class="s1">'error'</span><span class="o">,</span> <span class="s1">'Element'</span><span class="o">);</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">element</span><span class="o">.</span><span class="nx">parent</span> <span class="o">!=</span> <span class="nx">parent</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">before</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">parent</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="nx">element</span><span class="o">,</span> <span class="nx">before</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">parent</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">element</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="nx">element</span> <span class="o">+</span> <span class="s1">'appended to '</span> <span class="o">+</span> <span class="nx">parent</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s1">'appendTo'</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">type</span><span class="o">:</span> <span class="s1">'appendTo'</span><span class="o">,</span>
|
|
<span class="nx">target</span><span class="o">:</span> <span class="nx">parent</span>
|
|
<span class="o">});</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">get</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">key</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">configs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_configs</span> <span class="o">||</span> <span class="o">{};</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">configs</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span> <span class="c">// avoid loop due to 'element'</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">configs</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">value</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="o">.</span><span class="nx">value</span><span class="o">[</span><span class="nx">key</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">AttributeProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">get</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">key</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">setAttributes</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">map</span><span class="o">,</span> <span class="nx">silent</span><span class="o">){</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">map</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// need to configure if setting unconfigured HTMLElement attribute </span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="nx">key</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">// set based on configOrder</span>
|
|
<span class="c"></span> <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="o">;</span> <span class="o">++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">map</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span><span class="o">[</span><span class="nx">i</span><span class="o">]]</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span><span class="o">[</span><span class="nx">i</span><span class="o">],</span> <span class="nx">map</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span><span class="o">[</span><span class="nx">i</span><span class="o">]],</span> <span class="nx">silent</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">set</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">key</span><span class="o">,</span> <span class="nx">value</span><span class="o">,</span> <span class="nx">silent</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_queue</span><span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">_queue</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="o">[</span><span class="s1">'set'</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">];</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">].</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">value</span><span class="o">;</span> <span class="c">// so "get" works while queueing</span>
|
|
<span class="c"></span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">// set it on the element if not configured and is an HTML attribute</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">_registerHTMLAttr</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">key</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">AttributeProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">set</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">setAttributeConfig</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">key</span><span class="o">,</span> <span class="nx">map</span><span class="o">,</span> <span class="nx">init</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">_registerHTMLAttr</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">key</span><span class="o">,</span> <span class="nx">map</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">AttributeProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">key</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">getAttributeKeys</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="k">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="nx">AttributeProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">getAttributeKeys</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="c">//add any unconfigured element keys</span>
|
|
<span class="c"></span> <span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="nx">keys</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">=</span> <span class="nx">keys</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">||</span> <span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">keys</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">createEvent</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">scope</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_events</span><span class="o">[</span><span class="nx">type</span><span class="o">]</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="nx">AttributeProvider</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">attr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">_initElement</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">_initElement</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">attr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_queue</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_queue</span> <span class="o">||</span> <span class="o">[];</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_events</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_events</span> <span class="o">||</span> <span class="o">{};</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_configs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_configs</span> <span class="o">||</span> <span class="o">{};</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_configOrder</span> <span class="o">=</span> <span class="o">[];</span>
|
|
<span class="nx">attr</span> <span class="o">=</span> <span class="nx">attr</span> <span class="o">||</span> <span class="o">{};</span>
|
|
<span class="nx">attr</span><span class="o">.</span><span class="nx">element</span> <span class="o">=</span> <span class="nx">attr</span><span class="o">.</span><span class="nx">element</span> <span class="o">||</span> <span class="nx">el</span> <span class="o">||</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">DOM_EVENTS</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="s1">'click'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'dblclick'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'keydown'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'keypress'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'keyup'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'mousedown'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'mousemove'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'mouseout'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'mouseover'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'mouseup'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'focus'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'blur'</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s1">'submit'</span><span class="o">:</span> <span class="kc">true</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">isReady</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span> <span class="c">// to determine when to init HTMLElement and content</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">)</span> <span class="o">{</span> <span class="c">// defer until available/ready</span>
|
|
<span class="c"></span> <span class="nx">_registerHTMLAttr</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="s1">'id'</span><span class="o">,</span> <span class="o">{</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">attr</span><span class="o">.</span><span class="nx">element</span> <span class="o">});</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">el</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">isReady</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="nx">_initHTMLElement</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">attr</span><span class="o">);</span>
|
|
<span class="nx">_initContent</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">attr</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">onAvailable</span><span class="o">(</span><span class="nx">attr</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">isReady</span><span class="o">)</span> <span class="o">{</span> <span class="c">// otherwise already done</span>
|
|
<span class="c"></span> <span class="nx">_initHTMLElement</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">attr</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s1">'available'</span><span class="o">,</span> <span class="o">{</span> <span class="nx">type</span><span class="o">:</span> <span class="s1">'available'</span><span class="o">,</span> <span class="nx">target</span><span class="o">:</span> <span class="nx">attr</span><span class="o">.</span><span class="nx">element</span> <span class="o">});</span>
|
|
<span class="o">},</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">onContentReady</span><span class="o">(</span><span class="nx">attr</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">isReady</span><span class="o">)</span> <span class="o">{</span> <span class="c">// otherwise already done</span>
|
|
<span class="c"></span> <span class="nx">_initContent</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">attr</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireEvent</span><span class="o">(</span><span class="s1">'contentReady'</span><span class="o">,</span> <span class="o">{</span> <span class="nx">type</span><span class="o">:</span> <span class="s1">'contentReady'</span><span class="o">,</span> <span class="nx">target</span><span class="o">:</span> <span class="nx">attr</span><span class="o">.</span><span class="nx">element</span> <span class="o">});</span>
|
|
<span class="o">},</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">_initHTMLElement</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">attr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The HTMLElement the Element instance refers to.</span>
|
|
<span class="c"> * @attribute element</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributeConfig</span><span class="o">(</span><span class="s1">'element'</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">attr</span><span class="o">.</span><span class="nx">element</span><span class="o">),</span>
|
|
<span class="nx">readOnly</span><span class="o">:</span> <span class="kc">true</span>
|
|
<span class="o">});</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">_initContent</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">attr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">initAttributes</span><span class="o">(</span><span class="nx">attr</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setAttributes</span><span class="o">(</span><span class="nx">attr</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fireQueue</span><span class="o">();</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the value of the property and fires beforeChange and change events.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @method _registerHTMLAttr</span>
|
|
<span class="c"> * @param {YAHOO.util.Element} element The Element instance to</span>
|
|
<span class="c"> * register the config to.</span>
|
|
<span class="c"> * @param {String} key The name of the config to register</span>
|
|
<span class="c"> * @param {Object} map A key-value map of the config's params</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">var</span> <span class="nx">_registerHTMLAttr</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">key</span><span class="o">,</span> <span class="nx">map</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'element'</span><span class="o">);</span>
|
|
<span class="nx">map</span> <span class="o">=</span> <span class="nx">map</span> <span class="o">||</span> <span class="o">{};</span>
|
|
<span class="nx">map</span><span class="o">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">key</span><span class="o">;</span>
|
|
<span class="nx">map</span><span class="o">.</span><span class="nx">method</span> <span class="o">=</span> <span class="nx">map</span><span class="o">.</span><span class="nx">method</span> <span class="o">||</span> <span class="k">function</span><span class="o">(</span><span class="nx">value</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">=</span> <span class="nx">value</span><span class="o">;</span>
|
|
<span class="o">};</span>
|
|
<span class="nx">map</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">map</span><span class="o">.</span><span class="nx">value</span> <span class="o">||</span> <span class="nx">el</span><span class="o">[</span><span class="nx">key</span><span class="o">];</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_configs</span><span class="o">[</span><span class="nx">key</span><span class="o">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Attribute</span><span class="o">(</span><span class="nx">map</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Fires when the Element's HTMLElement can be retrieved by Id.</span>
|
|
<span class="c"> * <p>See: <a href="#addListener">Element.addListener</a></p></span>
|
|
<span class="c"> * <p><strong>Event fields:</strong><br></span>
|
|
<span class="c"> * <code>&lt;String&gt; type</code> available<br></span>
|
|
<span class="c"> * <code>&lt;HTMLElement&gt;</span>
|
|
<span class="c"> * target</code> the HTMLElement bound to this Element instance<br></span>
|
|
<span class="c"> * <p><strong>Usage:</strong><br></span>
|
|
<span class="c"> * <code>var handler = function(e) {var target = e.target};<br></span>
|
|
<span class="c"> * myTabs.addListener('available', handler);</code></p></span>
|
|
<span class="c"> * @event available</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Fires when the Element's HTMLElement subtree is rendered.</span>
|
|
<span class="c"> * <p>See: <a href="#addListener">Element.addListener</a></p></span>
|
|
<span class="c"> * <p><strong>Event fields:</strong><br></span>
|
|
<span class="c"> * <code>&lt;String&gt; type</code> contentReady<br></span>
|
|
<span class="c"> * <code>&lt;HTMLElement&gt;</span>
|
|
<span class="c"> * target</code> the HTMLElement bound to this Element instance<br></span>
|
|
<span class="c"> * <p><strong>Usage:</strong><br></span>
|
|
<span class="c"> * <code>var handler = function(e) {var target = e.target};<br></span>
|
|
<span class="c"> * myTabs.addListener('contentReady', handler);</code></p></span>
|
|
<span class="c"> * @event contentReady</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Fires before the Element is appended to another Element.</span>
|
|
<span class="c"> * <p>See: <a href="#addListener">Element.addListener</a></p></span>
|
|
<span class="c"> * <p><strong>Event fields:</strong><br></span>
|
|
<span class="c"> * <code>&lt;String&gt; type</code> beforeAppendTo<br></span>
|
|
<span class="c"> * <code>&lt;HTMLElement/Element&gt;</span>
|
|
<span class="c"> * target</code> the HTMLElement/Element being appended to </span>
|
|
<span class="c"> * <p><strong>Usage:</strong><br></span>
|
|
<span class="c"> * <code>var handler = function(e) {var target = e.target};<br></span>
|
|
<span class="c"> * myTabs.addListener('beforeAppendTo', handler);</code></p></span>
|
|
<span class="c"> * @event beforeAppendTo</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Fires after the Element is appended to another Element.</span>
|
|
<span class="c"> * <p>See: <a href="#addListener">Element.addListener</a></p></span>
|
|
<span class="c"> * <p><strong>Event fields:</strong><br></span>
|
|
<span class="c"> * <code>&lt;String&gt; type</code> appendTo<br></span>
|
|
<span class="c"> * <code>&lt;HTMLElement/Element&gt;</span>
|
|
<span class="c"> * target</code> the HTMLElement/Element being appended to </span>
|
|
<span class="c"> * <p><strong>Usage:</strong><br></span>
|
|
<span class="c"> * <code>var handler = function(e) {var target = e.target};<br></span>
|
|
<span class="c"> * myTabs.addListener('appendTo', handler);</code></p></span>
|
|
<span class="c"> * @event appendTo</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">augment</span><span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Element</span><span class="o">,</span> <span class="nx">AttributeProvider</span><span class="o">);</span>
|
|
<span class="o">})();</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
|
|
<li class=""><a href="module_animation.html">animation</a></li>
|
|
|
|
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
|
|
|
|
<li class=""><a href="module_button.html">button</a></li>
|
|
|
|
<li class=""><a href="module_calendar.html">calendar</a></li>
|
|
|
|
<li class=""><a href="module_carousel.html">carousel</a></li>
|
|
|
|
<li class=""><a href="module_charts.html">charts</a></li>
|
|
|
|
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
|
|
|
|
<li class=""><a href="module_connection.html">connection</a></li>
|
|
|
|
<li class=""><a href="module_container.html">container</a></li>
|
|
|
|
<li class=""><a href="module_cookie.html">cookie</a></li>
|
|
|
|
<li class=""><a href="module_datasource.html">datasource</a></li>
|
|
|
|
<li class=""><a href="module_datatable.html">datatable</a></li>
|
|
|
|
<li class=""><a href="module_dom.html">dom</a></li>
|
|
|
|
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
|
|
|
|
<li class=""><a href="module_editor.html">editor</a></li>
|
|
|
|
<li class="selected"><a href="module_element.html">element</a></li>
|
|
|
|
<li class=""><a href="module_event.html">event</a></li>
|
|
|
|
<li class=""><a href="module_get.html">get</a></li>
|
|
|
|
<li class=""><a href="module_history.html">history</a></li>
|
|
|
|
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
|
|
|
|
<li class=""><a href="module_imageloader.html">imageloader</a></li>
|
|
|
|
<li class=""><a href="module_json.html">json</a></li>
|
|
|
|
<li class=""><a href="module_layout.html">layout</a></li>
|
|
|
|
<li class=""><a href="module_logger.html">logger</a></li>
|
|
|
|
<li class=""><a href="module_menu.html">menu</a></li>
|
|
|
|
<li class=""><a href="module_paginator.html">paginator</a></li>
|
|
|
|
<li class=""><a href="module_profiler.html">profiler</a></li>
|
|
|
|
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
|
|
|
|
<li class=""><a href="module_resize.html">resize</a></li>
|
|
|
|
<li class=""><a href="module_selector.html">selector</a></li>
|
|
|
|
<li class=""><a href="module_slider.html">slider</a></li>
|
|
|
|
<li class=""><a href="module_tabview.html">tabview</a></li>
|
|
|
|
<li class=""><a href="module_treeview.html">treeview</a></li>
|
|
|
|
<li class=""><a href="module_uploader.html">uploader</a></li>
|
|
|
|
<li class=""><a href="module_yahoo.html">yahoo</a></li>
|
|
|
|
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
|
|
|
|
<li class=""><a href="module_yuitest.html">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.util.Attribute.html">YAHOO.util.Attribute</a></li>
|
|
<li class=""><a href="YAHOO.util.AttributeProvider.html">YAHOO.util.AttributeProvider</a></li>
|
|
<li class=""><a href="YAHOO.util.Element.html">YAHOO.util.Element</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="Attribute.js.html">Attribute.js</a></li>
|
|
<li class=""><a href="AttributeProvider.js.html">AttributeProvider.js</a></li>
|
|
<li class="selected"><a href="Element.js.html">Element.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2008 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|