mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-14 21:43:18 +00:00
1562 lines
222 KiB
HTML
1562 lines
222 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
<title>API: dom Dom.js (YUI Library)</title>
|
|
|
|
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
|
|
<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">
|
|
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
|
|
<h3>dom <span class="subtitle">2.8.2r1</span></h3>
|
|
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
|
|
> <a href="./module_dom.html" title="dom">dom</a>
|
|
|
|
> Dom.js (source view)
|
|
<form onsubmit="return false">
|
|
<div id="propertysearch">
|
|
Search: <input autocomplete="off" id="searchinput" />
|
|
<div id="searchresults">
|
|
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
|
|
<fieldset>
|
|
<legend>Filters</legend>
|
|
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
|
|
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
|
|
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
|
|
</fieldset>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 .classopts { display:none; }
|
|
</style>
|
|
<div class="highlight"><pre><span class="cm">/**</span>
|
|
<span class="cm"> * The dom module provides helper methods for manipulating Dom elements.</span>
|
|
<span class="cm"> * @module dom</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> */</span>
|
|
|
|
<span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="c1">// for use with generateId (global to save state if Dom is overwritten)</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">_id_counter</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">_id_counter</span> <span class="o">||</span> <span class="mi">0</span><span class="p">;</span>
|
|
|
|
<span class="c1">// internal shorthand</span>
|
|
<span class="kd">var</span> <span class="nx">Y</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">,</span>
|
|
<span class="nx">lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">,</span>
|
|
<span class="nx">UA</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">,</span>
|
|
<span class="nx">trim</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">trim</span><span class="p">,</span>
|
|
<span class="nx">propertyCache</span> <span class="o">=</span> <span class="p">{},</span> <span class="c1">// for faster hyphen converts</span>
|
|
<span class="nx">reCache</span> <span class="o">=</span> <span class="p">{},</span> <span class="c1">// cache className regexes</span>
|
|
<span class="nx">RE_TABLE</span> <span class="o">=</span> <span class="sr">/^t(?:able|d|h)$/i</span><span class="p">,</span> <span class="c1">// for _calcBorders</span>
|
|
<span class="nx">RE_COLOR</span> <span class="o">=</span> <span class="sr">/color$/i</span><span class="p">,</span>
|
|
|
|
<span class="c1">// DOM aliases </span>
|
|
<span class="nb">document</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nb">document</span><span class="p">,</span>
|
|
<span class="nx">documentElement</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">,</span>
|
|
|
|
<span class="c1">// string constants</span>
|
|
<span class="nx">OWNER_DOCUMENT</span> <span class="o">=</span> <span class="s1">'ownerDocument'</span><span class="p">,</span>
|
|
<span class="nx">DEFAULT_VIEW</span> <span class="o">=</span> <span class="s1">'defaultView'</span><span class="p">,</span>
|
|
<span class="nx">DOCUMENT_ELEMENT</span> <span class="o">=</span> <span class="s1">'documentElement'</span><span class="p">,</span>
|
|
<span class="nx">COMPAT_MODE</span> <span class="o">=</span> <span class="s1">'compatMode'</span><span class="p">,</span>
|
|
<span class="nx">OFFSET_LEFT</span> <span class="o">=</span> <span class="s1">'offsetLeft'</span><span class="p">,</span>
|
|
<span class="nx">OFFSET_TOP</span> <span class="o">=</span> <span class="s1">'offsetTop'</span><span class="p">,</span>
|
|
<span class="nx">OFFSET_PARENT</span> <span class="o">=</span> <span class="s1">'offsetParent'</span><span class="p">,</span>
|
|
<span class="nx">PARENT_NODE</span> <span class="o">=</span> <span class="s1">'parentNode'</span><span class="p">,</span>
|
|
<span class="nx">NODE_TYPE</span> <span class="o">=</span> <span class="s1">'nodeType'</span><span class="p">,</span>
|
|
<span class="nx">TAG_NAME</span> <span class="o">=</span> <span class="s1">'tagName'</span><span class="p">,</span>
|
|
<span class="nx">SCROLL_LEFT</span> <span class="o">=</span> <span class="s1">'scrollLeft'</span><span class="p">,</span>
|
|
<span class="nx">SCROLL_TOP</span> <span class="o">=</span> <span class="s1">'scrollTop'</span><span class="p">,</span>
|
|
<span class="nx">GET_BOUNDING_CLIENT_RECT</span> <span class="o">=</span> <span class="s1">'getBoundingClientRect'</span><span class="p">,</span>
|
|
<span class="nx">GET_COMPUTED_STYLE</span> <span class="o">=</span> <span class="s1">'getComputedStyle'</span><span class="p">,</span>
|
|
<span class="nx">CURRENT_STYLE</span> <span class="o">=</span> <span class="s1">'currentStyle'</span><span class="p">,</span>
|
|
<span class="nx">CSS1_COMPAT</span> <span class="o">=</span> <span class="s1">'CSS1Compat'</span><span class="p">,</span>
|
|
<span class="nx">_BACK_COMPAT</span> <span class="o">=</span> <span class="s1">'BackCompat'</span><span class="p">,</span>
|
|
<span class="nx">_CLASS</span> <span class="o">=</span> <span class="s1">'class'</span><span class="p">,</span> <span class="c1">// underscore due to reserved word</span>
|
|
<span class="nx">CLASS_NAME</span> <span class="o">=</span> <span class="s1">'className'</span><span class="p">,</span>
|
|
<span class="nx">EMPTY</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span>
|
|
<span class="nx">SPACE</span> <span class="o">=</span> <span class="s1">' '</span><span class="p">,</span>
|
|
<span class="nx">C_START</span> <span class="o">=</span> <span class="s1">'(?:^|\\s)'</span><span class="p">,</span>
|
|
<span class="nx">C_END</span> <span class="o">=</span> <span class="s1">'(?= |$)'</span><span class="p">,</span>
|
|
<span class="nx">G</span> <span class="o">=</span> <span class="s1">'g'</span><span class="p">,</span>
|
|
<span class="nx">POSITION</span> <span class="o">=</span> <span class="s1">'position'</span><span class="p">,</span>
|
|
<span class="nx">FIXED</span> <span class="o">=</span> <span class="s1">'fixed'</span><span class="p">,</span>
|
|
<span class="nx">RELATIVE</span> <span class="o">=</span> <span class="s1">'relative'</span><span class="p">,</span>
|
|
<span class="nx">LEFT</span> <span class="o">=</span> <span class="s1">'left'</span><span class="p">,</span>
|
|
<span class="nx">TOP</span> <span class="o">=</span> <span class="s1">'top'</span><span class="p">,</span>
|
|
<span class="nx">MEDIUM</span> <span class="o">=</span> <span class="s1">'medium'</span><span class="p">,</span>
|
|
<span class="nx">BORDER_LEFT_WIDTH</span> <span class="o">=</span> <span class="s1">'borderLeftWidth'</span><span class="p">,</span>
|
|
<span class="nx">BORDER_TOP_WIDTH</span> <span class="o">=</span> <span class="s1">'borderTopWidth'</span><span class="p">,</span>
|
|
|
|
<span class="c1">// brower detection</span>
|
|
<span class="nx">isOpera</span> <span class="o">=</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">opera</span><span class="p">,</span>
|
|
<span class="nx">isSafari</span> <span class="o">=</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">webkit</span><span class="p">,</span>
|
|
<span class="nx">isGecko</span> <span class="o">=</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">gecko</span><span class="p">,</span>
|
|
<span class="nx">isIE</span> <span class="o">=</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span><span class="p">;</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Provides helper methods for DOM elements.</span>
|
|
<span class="cm"> * @namespace YAHOO.util</span>
|
|
<span class="cm"> * @class Dom</span>
|
|
<span class="cm"> * @requires yahoo, event</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span> <span class="o">=</span> <span class="p">{</span>
|
|
<span class="nx">CUSTOM_ATTRIBUTES</span><span class="o">:</span> <span class="p">(</span><span class="o">!</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">hasAttribute</span><span class="p">)</span> <span class="o">?</span> <span class="p">{</span> <span class="c1">// IE < 8</span>
|
|
<span class="s1">'for'</span><span class="o">:</span> <span class="s1">'htmlFor'</span><span class="p">,</span>
|
|
<span class="s1">'class'</span><span class="o">:</span> <span class="nx">CLASS_NAME</span>
|
|
<span class="p">}</span> <span class="o">:</span> <span class="p">{</span> <span class="c1">// w3c</span>
|
|
<span class="s1">'htmlFor'</span><span class="o">:</span> <span class="s1">'for'</span><span class="p">,</span>
|
|
<span class="s1">'className'</span><span class="o">:</span> <span class="nx">_CLASS</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">DOT_ATTRIBUTES</span><span class="o">:</span> <span class="p">{},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an HTMLElement reference.</span>
|
|
<span class="cm"> * @method get</span>
|
|
<span class="cm"> * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">get</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">id</span><span class="p">,</span> <span class="nx">nodes</span><span class="p">,</span> <span class="nx">c</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">len</span><span class="p">,</span> <span class="nx">attr</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">NODE_TYPE</span><span class="p">]</span> <span class="o">||</span> <span class="nx">el</span><span class="p">.</span><span class="nx">item</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Node, or NodeList</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">el</span> <span class="o">===</span> <span class="s1">'string'</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// id</span>
|
|
<span class="nx">id</span> <span class="o">=</span> <span class="nx">el</span><span class="p">;</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span>
|
|
<span class="nx">attr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="o">?</span> <span class="nx">el</span><span class="p">.</span><span class="nx">attributes</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">attr</span> <span class="o">&&</span> <span class="nx">attr</span><span class="p">.</span><span class="nx">id</span> <span class="o">&&</span> <span class="nx">attr</span><span class="p">.</span><span class="nx">id</span><span class="p">.</span><span class="nx">value</span> <span class="o">===</span> <span class="nx">id</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE: avoid false match on "name" attribute</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">all</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// filter by name</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="nx">nodes</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">all</span><span class="p">[</span><span class="nx">id</span><span class="p">];</span>
|
|
<span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">nodes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">nodes</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">id</span> <span class="o">===</span> <span class="nx">id</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">nodes</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Element</span> <span class="o">&&</span> <span class="nx">el</span> <span class="k">instanceof</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Element</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s1">'element'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="s1">'length'</span> <span class="k">in</span> <span class="nx">el</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// array-like </span>
|
|
<span class="nx">c</span> <span class="o">=</span> <span class="p">[];</span>
|
|
<span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">c</span><span class="p">[</span><span class="nx">c</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">c</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">;</span> <span class="c1">// some other object, just pass it back</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">getComputedStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">][</span><span class="nx">DEFAULT_VIEW</span><span class="p">][</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">](</span><span class="nx">el</span><span class="p">,</span> <span class="kc">null</span><span class="p">)[</span><span class="nx">property</span><span class="p">];</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">IE_ComputedStyle</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Normalizes currentStyle and ComputedStyle.</span>
|
|
<span class="cm"> * @method getStyle</span>
|
|
<span class="cm"> * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @param {String} property The style property whose value is returned.</span>
|
|
<span class="cm"> * @return {String | Array} The current value of the style property for the element(s).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getStyle</span><span class="p">,</span> <span class="nx">property</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="c1">// branching at load instead of runtime</span>
|
|
<span class="nx">_getStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">])</span> <span class="p">{</span> <span class="c1">// W3C DOM method</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">property</span> <span class="o">=</span> <span class="p">(</span><span class="nx">property</span> <span class="o">===</span> <span class="s1">'float'</span><span class="p">)</span> <span class="o">?</span> <span class="nx">property</span> <span class="o">=</span> <span class="s1">'cssFloat'</span> <span class="o">:</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_toCamel</span><span class="p">(</span><span class="nx">property</span><span class="p">);</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">property</span><span class="p">],</span>
|
|
<span class="nx">computed</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">value</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">computed</span> <span class="o">=</span> <span class="nx">el</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">][</span><span class="nx">DEFAULT_VIEW</span><span class="p">][</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">](</span><span class="nx">el</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">computed</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// test computed before touching for safari</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="nx">computed</span><span class="p">[</span><span class="nx">property</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">value</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">documentElement</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">value</span><span class="p">;</span>
|
|
|
|
<span class="k">switch</span><span class="p">(</span><span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">case</span> <span class="s1">'opacity'</span> <span class="o">:</span><span class="c1">// IE opacity uses filter</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
|
|
<span class="k">try</span> <span class="p">{</span> <span class="c1">// will error if no DXImageTransform</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">filters</span><span class="p">[</span><span class="s1">'DXImageTransform.Microsoft.Alpha'</span><span class="p">].</span><span class="nx">opacity</span><span class="p">;</span>
|
|
|
|
<span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">try</span> <span class="p">{</span> <span class="c1">// make sure its in the document</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">filters</span><span class="p">(</span><span class="s1">'alpha'</span><span class="p">).</span><span class="nx">opacity</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getStyle: IE filter failed'</span><span class="p">,</span>
|
|
<span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">value</span> <span class="o">/</span> <span class="mi">100</span><span class="p">;</span>
|
|
<span class="k">case</span> <span class="s1">'float'</span><span class="o">:</span> <span class="c1">// fix reserved word</span>
|
|
<span class="nx">property</span> <span class="o">=</span> <span class="s1">'styleFloat'</span><span class="p">;</span> <span class="c1">// fall through</span>
|
|
<span class="k">default</span><span class="o">:</span>
|
|
<span class="nx">property</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_toCamel</span><span class="p">(</span><span class="nx">property</span><span class="p">);</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="nx">el</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">]</span> <span class="o">?</span> <span class="nx">el</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">][</span><span class="nx">property</span><span class="p">]</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="p">(</span> <span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">||</span> <span class="nx">value</span> <span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}(),</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Wrapper for setting style properties of HTMLElements. Normalizes "opacity" across modern browsers.</span>
|
|
<span class="cm"> * @method setStyle</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @param {String} property The style property to be set.</span>
|
|
<span class="cm"> * @param {String} val The value to apply to the given property.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">setStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">property</span><span class="p">,</span> <span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_setStyle</span><span class="p">,</span> <span class="p">{</span> <span class="nx">prop</span><span class="o">:</span> <span class="nx">property</span><span class="p">,</span> <span class="nx">val</span><span class="o">:</span> <span class="nx">val</span> <span class="p">});</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_setStyle</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isIE</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">property</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_toCamel</span><span class="p">(</span><span class="nx">args</span><span class="p">.</span><span class="nx">prop</span><span class="p">),</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">switch</span> <span class="p">(</span><span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">case</span> <span class="s1">'opacity'</span><span class="o">:</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">filter</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span> <span class="c1">// in case not appended</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">filter</span> <span class="o">=</span> <span class="s1">'alpha(opacity='</span> <span class="o">+</span> <span class="nx">val</span> <span class="o">*</span> <span class="mi">100</span> <span class="o">+</span> <span class="s1">')'</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">el</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">]</span> <span class="o">||</span> <span class="o">!</span><span class="nx">el</span><span class="p">[</span><span class="nx">CURRENT_STYLE</span><span class="p">].</span><span class="nx">hasLayout</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">zoom</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="c1">// when no layout or cant tell</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">break</span><span class="p">;</span>
|
|
<span class="k">case</span> <span class="s1">'float'</span><span class="o">:</span>
|
|
<span class="nx">property</span> <span class="o">=</span> <span class="s1">'styleFloat'</span><span class="p">;</span>
|
|
<span class="k">default</span><span class="o">:</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'element '</span> <span class="o">+</span> <span class="nx">el</span> <span class="o">+</span> <span class="s1">' is undefined'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">property</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_toCamel</span><span class="p">(</span><span class="nx">args</span><span class="p">.</span><span class="nx">prop</span><span class="p">),</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">property</span> <span class="o">==</span> <span class="s1">'float'</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">property</span> <span class="o">=</span> <span class="s1">'cssFloat'</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'element '</span> <span class="o">+</span> <span class="nx">el</span> <span class="o">+</span> <span class="s1">' is undefined'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="p">}(),</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Gets the current position of an element based on page coordinates. </span>
|
|
<span class="cm"> * Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method getXY</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM</span>
|
|
<span class="cm"> * reference, or an Array of IDs and/or HTMLElements</span>
|
|
<span class="cm"> * @return {Array} The XY position of the element(s)</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getXY</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_canPosition</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s1">'display'</span><span class="p">)</span> <span class="o">!==</span> <span class="s1">'none'</span> <span class="o">&&</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_inDoc</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_getXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">][</span><span class="nx">GET_BOUNDING_CLIENT_RECT</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">scrollLeft</span><span class="p">,</span> <span class="nx">scrollTop</span><span class="p">,</span> <span class="nx">box</span><span class="p">,</span> <span class="nx">doc</span><span class="p">,</span>
|
|
<span class="nx">off1</span><span class="p">,</span> <span class="nx">off2</span><span class="p">,</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">bLeft</span><span class="p">,</span> <span class="nx">bTop</span><span class="p">,</span>
|
|
<span class="nx">floor</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">,</span> <span class="c1">// TODO: round?</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_canPosition</span><span class="p">(</span><span class="nx">node</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="nx">box</span> <span class="o">=</span> <span class="nx">node</span><span class="p">[</span><span class="nx">GET_BOUNDING_CLIENT_RECT</span><span class="p">]();</span>
|
|
<span class="nx">doc</span> <span class="o">=</span> <span class="nx">node</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">];</span>
|
|
<span class="nx">scrollLeft</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">(</span><span class="nx">doc</span><span class="p">);</span>
|
|
<span class="nx">scrollTop</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">(</span><span class="nx">doc</span><span class="p">);</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="p">[</span><span class="nx">floor</span><span class="p">(</span><span class="nx">box</span><span class="p">[</span><span class="nx">LEFT</span><span class="p">]),</span> <span class="nx">floor</span><span class="p">(</span><span class="nx">box</span><span class="p">[</span><span class="nx">TOP</span><span class="p">])];</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isIE</span> <span class="o">&&</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o"><</span> <span class="mi">8</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE < 8: viewport off by 2</span>
|
|
<span class="nx">off1</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
|
|
<span class="nx">off2</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
|
|
<span class="nx">mode</span> <span class="o">=</span> <span class="nx">doc</span><span class="p">[</span><span class="nx">COMPAT_MODE</span><span class="p">];</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o">===</span> <span class="mi">6</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">mode</span> <span class="o">!==</span> <span class="nx">_BACK_COMPAT</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">off1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="nx">off2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">((</span><span class="nx">mode</span> <span class="o">===</span> <span class="nx">_BACK_COMPAT</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="nx">bLeft</span> <span class="o">=</span> <span class="nx">_getComputedStyle</span><span class="p">(</span><span class="nx">doc</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">],</span> <span class="nx">BORDER_LEFT_WIDTH</span><span class="p">);</span>
|
|
<span class="nx">bTop</span> <span class="o">=</span> <span class="nx">_getComputedStyle</span><span class="p">(</span><span class="nx">doc</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">],</span> <span class="nx">BORDER_TOP_WIDTH</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">bLeft</span> <span class="o">!==</span> <span class="nx">MEDIUM</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">off1</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">bLeft</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">bTop</span> <span class="o">!==</span> <span class="nx">MEDIUM</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">off2</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">bTop</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">off1</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">off2</span><span class="p">;</span>
|
|
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">((</span><span class="nx">scrollTop</span> <span class="o">||</span> <span class="nx">scrollLeft</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">scrollLeft</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">scrollTop</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="c1">// gecko may return sub-pixel (non-int) values</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nx">floor</span><span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nx">floor</span><span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getXY failed: element not positionable (either not in a document or not displayed)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">xy</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// ff2, safari: manually calculate by crawling up offsetParents</span>
|
|
<span class="kd">var</span> <span class="nx">docScrollLeft</span><span class="p">,</span> <span class="nx">docScrollTop</span><span class="p">,</span>
|
|
<span class="nx">scrollTop</span><span class="p">,</span> <span class="nx">scrollLeft</span><span class="p">,</span>
|
|
<span class="nx">bCheck</span><span class="p">,</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
|
|
<span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">node</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_canPosition</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="p">[</span><span class="nx">node</span><span class="p">[</span><span class="nx">OFFSET_LEFT</span><span class="p">],</span> <span class="nx">node</span><span class="p">[</span><span class="nx">OFFSET_TOP</span><span class="p">]];</span>
|
|
<span class="nx">docScrollLeft</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">(</span><span class="nx">node</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">]);</span>
|
|
<span class="nx">docScrollTop</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">(</span><span class="nx">node</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">]);</span>
|
|
|
|
<span class="c1">// TODO: refactor with !! or just falsey</span>
|
|
<span class="nx">bCheck</span> <span class="o">=</span> <span class="p">((</span><span class="nx">isGecko</span> <span class="o">||</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">webkit</span> <span class="o">></span> <span class="mi">519</span><span class="p">)</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">);</span>
|
|
|
|
<span class="c1">// TODO: worth refactoring for TOP/LEFT only?</span>
|
|
<span class="k">while</span> <span class="p">((</span><span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">OFFSET_PARENT</span><span class="p">]))</span> <span class="p">{</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">OFFSET_LEFT</span><span class="p">];</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">OFFSET_TOP</span><span class="p">];</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">bCheck</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_calcBorders</span><span class="p">(</span><span class="nx">parentNode</span><span class="p">,</span> <span class="nx">xy</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="c1">// account for any scrolled ancestors</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">POSITION</span><span class="p">)</span> <span class="o">!==</span> <span class="nx">FIXED</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">node</span><span class="p">;</span>
|
|
|
|
<span class="k">while</span> <span class="p">((</span><span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">])</span> <span class="o">&&</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">scrollTop</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">SCROLL_TOP</span><span class="p">];</span>
|
|
<span class="nx">scrollLeft</span> <span class="o">=</span> <span class="nx">parentNode</span><span class="p">[</span><span class="nx">SCROLL_LEFT</span><span class="p">];</span>
|
|
|
|
<span class="c1">//Firefox does something funky with borders when overflow is not visible.</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isGecko</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getStyle</span><span class="p">(</span><span class="nx">parentNode</span><span class="p">,</span> <span class="s1">'overflow'</span><span class="p">)</span> <span class="o">!==</span> <span class="s1">'visible'</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_calcBorders</span><span class="p">(</span><span class="nx">parentNode</span><span class="p">,</span> <span class="nx">xy</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">scrollTop</span> <span class="o">||</span> <span class="nx">scrollLeft</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">scrollLeft</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">scrollTop</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">docScrollLeft</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">docScrollTop</span><span class="p">;</span>
|
|
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="c1">//Fix FIXED position -- add scrollbars</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isOpera</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">docScrollLeft</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-=</span> <span class="nx">docScrollTop</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">isSafari</span> <span class="o">||</span> <span class="nx">isGecko</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">docScrollLeft</span><span class="p">;</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">docScrollTop</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="c1">//Round the numbers so we get sane data back</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span>
|
|
<span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getXY failed: element not positionable (either not in a document or not displayed)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">xy</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}(),</span> <span class="c1">// NOTE: Executing for loadtime branching</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Gets the current X position of an element based on page coordinates. The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method getX</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>
|
|
<span class="cm"> * @return {Number | Array} The X position of the element(s)</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getX</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="nx">el</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">f</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Gets the current Y position of an element based on page coordinates. Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method getY</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>
|
|
<span class="cm"> * @return {Number | Array} The Y position of the element(s)</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="nx">el</span><span class="p">)[</span><span class="mi">1</span><span class="p">];</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">f</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Set the position of an html element in page coordinates, regardless of how the element is positioned.</span>
|
|
<span class="cm"> * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method setXY</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>
|
|
<span class="cm"> * @param {Array} pos Contains X & Y values for new position (coordinates are page-based)</span>
|
|
<span class="cm"> * @param {Boolean} noRetry By default we try and set the position a second time if the first fails</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">setXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">pos</span><span class="p">,</span> <span class="nx">noRetry</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_setXY</span><span class="p">,</span> <span class="p">{</span> <span class="nx">pos</span><span class="o">:</span> <span class="nx">pos</span><span class="p">,</span> <span class="nx">noRetry</span><span class="o">:</span> <span class="nx">noRetry</span> <span class="p">});</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_setXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">POSITION</span><span class="p">),</span>
|
|
<span class="nx">setStyle</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">,</span>
|
|
<span class="nx">xy</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">pos</span><span class="p">,</span>
|
|
<span class="nx">noRetry</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">noRetry</span><span class="p">,</span>
|
|
|
|
<span class="nx">delta</span> <span class="o">=</span> <span class="p">[</span> <span class="c1">// assuming pixels; if not we will have to retry</span>
|
|
<span class="nb">parseInt</span><span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">LEFT</span><span class="p">),</span> <span class="mi">10</span> <span class="p">),</span>
|
|
<span class="nb">parseInt</span><span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">TOP</span><span class="p">),</span> <span class="mi">10</span> <span class="p">)</span>
|
|
<span class="p">],</span>
|
|
|
|
<span class="nx">currentXY</span><span class="p">,</span>
|
|
<span class="nx">newXY</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="s1">'static'</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// default to relative</span>
|
|
<span class="nx">pos</span> <span class="o">=</span> <span class="nx">RELATIVE</span><span class="p">;</span>
|
|
<span class="nx">setStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">POSITION</span><span class="p">,</span> <span class="nx">pos</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">currentXY</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getXY</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">xy</span> <span class="o">||</span> <span class="nx">currentXY</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// has to be part of doc to have xy</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'xy failed: node not available'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Node'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">delta</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span><span class="c1">// in case of 'auto'</span>
|
|
<span class="nx">delta</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="nx">RELATIVE</span><span class="p">)</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="nx">node</span><span class="p">[</span><span class="nx">OFFSET_LEFT</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">delta</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span> <span class="c1">// in case of 'auto'</span>
|
|
<span class="nx">delta</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="nx">RELATIVE</span><span class="p">)</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="nx">node</span><span class="p">[</span><span class="nx">OFFSET_TOP</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// from setX</span>
|
|
<span class="nx">setStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">LEFT</span><span class="p">,</span> <span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">currentXY</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nx">delta</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// from setY</span>
|
|
<span class="nx">setStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">TOP</span><span class="p">,</span> <span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">currentXY</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="nx">delta</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'px'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">noRetry</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">newXY</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getXY</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
|
|
<span class="c1">// if retry is true, try one more time if we miss </span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">newXY</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="nx">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">||</span>
|
|
<span class="p">(</span><span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">newXY</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="nx">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_setXY</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="p">{</span> <span class="nx">pos</span><span class="o">:</span> <span class="nx">xy</span><span class="p">,</span> <span class="nx">noRetry</span><span class="o">:</span> <span class="kc">true</span> <span class="p">});</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'setXY setting position to '</span> <span class="o">+</span> <span class="nx">xy</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Node'</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Set the X position of an html element in page coordinates, regardless of how the element is positioned.</span>
|
|
<span class="cm"> * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method setX</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @param {Int} x The value to use as the X coordinate for the element(s).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">setX</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setXY</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="p">[</span><span class="nx">x</span><span class="p">,</span> <span class="kc">null</span><span class="p">]);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Set the Y position of an html element in page coordinates, regardless of how the element is positioned.</span>
|
|
<span class="cm"> * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method setY</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @param {Int} x To use as the Y coordinate for the element(s).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">setY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setXY</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="p">[</span><span class="kc">null</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the region position of the given element.</span>
|
|
<span class="cm"> * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).</span>
|
|
<span class="cm"> * @method getRegion</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>
|
|
<span class="cm"> * @return {Region | Array} A Region or array of Region instances containing "top, left, bottom, right" member data.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getRegion</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">region</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_canPosition</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">region</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Region</span><span class="p">.</span><span class="nx">getRegion</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getRegion returning '</span> <span class="o">+</span> <span class="nx">region</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getRegion failed: element not positionable (either not in a document or not displayed)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">region</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">f</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the width of the client (viewport).</span>
|
|
<span class="cm"> * @method getClientWidth</span>
|
|
<span class="cm"> * @deprecated Now using getViewportWidth. This interface left intact for back compat.</span>
|
|
<span class="cm"> * @return {Int} The width of the viewable area of the page.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getClientWidth</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">();</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the height of the client (viewport).</span>
|
|
<span class="cm"> * @method getClientHeight</span>
|
|
<span class="cm"> * @deprecated Now using getViewportHeight. This interface left intact for back compat.</span>
|
|
<span class="cm"> * @return {Int} The height of the viewable area of the page.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getClientHeight</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">();</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an array of HTMLElements with the given class.</span>
|
|
<span class="cm"> * For optimized performance, include a tag and/or root node when possible.</span>
|
|
<span class="cm"> * Note: This method operates against a live collection, so modifying the </span>
|
|
<span class="cm"> * collection in the callback (removing/appending nodes, etc.) will have</span>
|
|
<span class="cm"> * side effects. Instead you should iterate the returned nodes array,</span>
|
|
<span class="cm"> * as you would with the native "getElementsByTagName" method. </span>
|
|
<span class="cm"> * @method getElementsByClassName</span>
|
|
<span class="cm"> * @param {String} className The class name to match against</span>
|
|
<span class="cm"> * @param {String} tag (optional) The tag name of the elements being collected</span>
|
|
<span class="cm"> * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point.</span>
|
|
<span class="cm"> * This element is not included in the className scan.</span>
|
|
<span class="cm"> * @param {Function} apply (optional) A function to apply to each element when found </span>
|
|
<span class="cm"> * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>
|
|
<span class="cm"> * @param {Boolean} overrides (optional) Whether or not to override the scope of "method" with "o"</span>
|
|
<span class="cm"> * @return {Array} An array of elements that have the given class name</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getElementsByClassName</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">className</span><span class="p">,</span> <span class="nx">tag</span><span class="p">,</span> <span class="nx">root</span><span class="p">,</span> <span class="nx">apply</span><span class="p">,</span> <span class="nx">o</span><span class="p">,</span> <span class="nx">overrides</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">tag</span> <span class="o">=</span> <span class="nx">tag</span> <span class="o">||</span> <span class="s1">'*'</span><span class="p">;</span>
|
|
<span class="nx">root</span> <span class="o">=</span> <span class="p">(</span><span class="nx">root</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">root</span><span class="p">)</span> <span class="o">:</span> <span class="kc">null</span> <span class="o">||</span> <span class="nb">document</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">root</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="p">[];</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">nodes</span> <span class="o">=</span> <span class="p">[],</span>
|
|
<span class="nx">elements</span> <span class="o">=</span> <span class="nx">root</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="nx">tag</span><span class="p">),</span>
|
|
<span class="nx">hasClass</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">;</span>
|
|
|
|
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">hasClass</span><span class="p">(</span><span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">className</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">nodes</span><span class="p">[</span><span class="nx">nodes</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">apply</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">nodes</span><span class="p">,</span> <span class="nx">apply</span><span class="p">,</span> <span class="nx">o</span><span class="p">,</span> <span class="nx">overrides</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">nodes</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Determines whether an HTMLElement has the given className.</span>
|
|
<span class="cm"> * @method hasClass</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el The element or collection to test</span>
|
|
<span class="cm"> * @param {String} className the class name to search for</span>
|
|
<span class="cm"> * @return {Boolean | Array} A boolean value or array of boolean values</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">hasClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_hasClass</span><span class="p">,</span> <span class="nx">className</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_hasClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
|
|
<span class="nx">current</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">current</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">)</span> <span class="o">||</span> <span class="nx">EMPTY</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">className</span><span class="p">.</span><span class="nx">exec</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="nx">className</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">current</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="nx">className</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">current</span> <span class="o">+</span> <span class="nx">SPACE</span><span class="p">).</span>
|
|
<span class="nx">indexOf</span><span class="p">(</span><span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">className</span> <span class="o">+</span> <span class="nx">SPACE</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'hasClass called with invalid arguments'</span><span class="p">,</span> <span class="s1">'warn'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Adds a class name to a given element or collection of elements.</span>
|
|
<span class="cm"> * @method addClass </span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el The element or collection to add the class to</span>
|
|
<span class="cm"> * @param {String} className the class name to add to the class attribute</span>
|
|
<span class="cm"> * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">addClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_addClass</span><span class="p">,</span> <span class="nx">className</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_addClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
|
|
<span class="nx">current</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">current</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">)</span> <span class="o">||</span> <span class="nx">EMPTY</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_hasClass</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">,</span> <span class="nx">trim</span><span class="p">(</span><span class="nx">current</span> <span class="o">+</span> <span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">className</span><span class="p">));</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'addClass called with invalid arguments'</span><span class="p">,</span> <span class="s1">'warn'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Removes a class name from a given element or collection of elements.</span>
|
|
<span class="cm"> * @method removeClass </span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el The element or collection to remove the class from</span>
|
|
<span class="cm"> * @param {String} className the class name to remove from the class attribute</span>
|
|
<span class="cm"> * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">removeClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_removeClass</span><span class="p">,</span> <span class="nx">className</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_removeClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
|
|
<span class="nx">current</span><span class="p">,</span>
|
|
<span class="nx">newClass</span><span class="p">,</span>
|
|
<span class="nx">attr</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">current</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">)</span> <span class="o">||</span> <span class="nx">EMPTY</span><span class="p">;</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">,</span> <span class="nx">current</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getClassRegex</span><span class="p">(</span><span class="nx">className</span><span class="p">),</span> <span class="nx">EMPTY</span><span class="p">));</span>
|
|
|
|
<span class="nx">newClass</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">current</span> <span class="o">!==</span> <span class="nx">newClass</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// else nothing changed</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">,</span> <span class="nx">trim</span><span class="p">(</span><span class="nx">newClass</span><span class="p">));</span> <span class="c1">// trim after comparing to current class</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">)</span> <span class="o">===</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// remove class attribute if empty</span>
|
|
<span class="nx">attr</span> <span class="o">=</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">hasAttribute</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">.</span><span class="nx">hasAttribute</span><span class="p">(</span><span class="nx">_CLASS</span><span class="p">))</span> <span class="o">?</span> <span class="nx">_CLASS</span> <span class="o">:</span> <span class="nx">CLASS_NAME</span><span class="p">;</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'removeClass removing empty class attribute'</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">removeAttribute</span><span class="p">(</span><span class="nx">attr</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'removeClass called with invalid arguments'</span><span class="p">,</span> <span class="s1">'warn'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Replace a class with another class for a given element or collection of elements.</span>
|
|
<span class="cm"> * If no oldClassName is present, the newClassName is simply added.</span>
|
|
<span class="cm"> * @method replaceClass </span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el The element or collection to remove the class from</span>
|
|
<span class="cm"> * @param {String} oldClassName the class name to be replaced</span>
|
|
<span class="cm"> * @param {String} newClassName the class name that will be replacing the old class name</span>
|
|
<span class="cm"> * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">replaceClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">oldClassName</span><span class="p">,</span> <span class="nx">newClassName</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_replaceClass</span><span class="p">,</span> <span class="p">{</span> <span class="nx">from</span><span class="o">:</span> <span class="nx">oldClassName</span><span class="p">,</span> <span class="nx">to</span><span class="o">:</span> <span class="nx">newClassName</span> <span class="p">});</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_replaceClass</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">classObj</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">className</span><span class="p">,</span>
|
|
<span class="nx">from</span><span class="p">,</span>
|
|
<span class="nx">to</span><span class="p">,</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
|
|
<span class="nx">current</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">classObj</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">from</span> <span class="o">=</span> <span class="nx">classObj</span><span class="p">.</span><span class="nx">from</span><span class="p">;</span>
|
|
<span class="nx">to</span> <span class="o">=</span> <span class="nx">classObj</span><span class="p">.</span><span class="nx">to</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">to</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">from</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// just add if no "from"</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_addClass</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">classObj</span><span class="p">.</span><span class="nx">to</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">from</span> <span class="o">!==</span> <span class="nx">to</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// else nothing to replace</span>
|
|
<span class="c1">// May need to lead with DBLSPACE?</span>
|
|
<span class="nx">current</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">)</span> <span class="o">||</span> <span class="nx">EMPTY</span><span class="p">;</span>
|
|
<span class="nx">className</span> <span class="o">=</span> <span class="p">(</span><span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">current</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getClassRegex</span><span class="p">(</span><span class="nx">from</span><span class="p">),</span> <span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">to</span><span class="p">)).</span>
|
|
<span class="nx">split</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getClassRegex</span><span class="p">(</span><span class="nx">to</span><span class="p">));</span>
|
|
|
|
<span class="c1">// insert to into what would have been the first occurrence slot</span>
|
|
<span class="nx">className</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">SPACE</span> <span class="o">+</span> <span class="nx">to</span><span class="p">);</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">CLASS_NAME</span><span class="p">,</span> <span class="nx">trim</span><span class="p">(</span><span class="nx">className</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="nx">EMPTY</span><span class="p">)));</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'replaceClass called with invalid arguments'</span><span class="p">,</span> <span class="s1">'warn'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an ID and applies it to the element "el", if provided.</span>
|
|
<span class="cm"> * @method generateId </span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present).</span>
|
|
<span class="cm"> * @param {String} prefix (optional) an optional prefix to use (defaults to "yui-gen").</span>
|
|
<span class="cm"> * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element)</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">generateId</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">prefix</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">prefix</span> <span class="o">=</span> <span class="nx">prefix</span> <span class="o">||</span> <span class="s1">'yui-gen'</span><span class="p">;</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">.</span><span class="nx">id</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// do not override existing ID</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'generateId returning existing id '</span> <span class="o">+</span> <span class="nx">el</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">id</span> <span class="o">=</span> <span class="nx">prefix</span> <span class="o">+</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">_id_counter</span><span class="o">++</span><span class="p">;</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'generateId generating '</span> <span class="o">+</span> <span class="nx">id</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">].</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">id</span><span class="p">))</span> <span class="p">{</span> <span class="c1">// in case one already exists</span>
|
|
<span class="c1">// use failed id plus prefix to help ensure uniqueness</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">generateId</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">id</span> <span class="o">+</span> <span class="nx">prefix</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">id</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">id</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="c1">// batch fails when no element, so just generate and return single ID</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">f</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="o">||</span> <span class="nx">f</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.</span>
|
|
<span class="cm"> * @method isAncestor</span>
|
|
<span class="cm"> * @param {String | HTMLElement} haystack The possible ancestor</span>
|
|
<span class="cm"> * @param {String | HTMLElement} needle The possible descendent</span>
|
|
<span class="cm"> * @return {Boolean} Whether or not the haystack is an ancestor of needle</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">isAncestor</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">haystack</span><span class="p">,</span> <span class="nx">needle</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">haystack</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">haystack</span><span class="p">);</span>
|
|
<span class="nx">needle</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">needle</span><span class="p">);</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="nx">haystack</span> <span class="o">&&</span> <span class="nx">needle</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">haystack</span><span class="p">[</span><span class="nx">NODE_TYPE</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">needle</span><span class="p">[</span><span class="nx">NODE_TYPE</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">haystack</span><span class="p">.</span><span class="nx">contains</span> <span class="o">&&</span> <span class="nx">haystack</span> <span class="o">!==</span> <span class="nx">needle</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// contains returns true when equal</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="nx">haystack</span><span class="p">.</span><span class="nx">contains</span><span class="p">(</span><span class="nx">needle</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">haystack</span><span class="p">.</span><span class="nx">compareDocumentPosition</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// gecko</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="o">!!</span><span class="p">(</span><span class="nx">haystack</span><span class="p">.</span><span class="nx">compareDocumentPosition</span><span class="p">(</span><span class="nx">needle</span><span class="p">)</span> <span class="o">&</span> <span class="mi">16</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'isAncestor failed; invalid input: '</span> <span class="o">+</span> <span class="nx">haystack</span> <span class="o">+</span> <span class="s1">','</span> <span class="o">+</span> <span class="nx">needle</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'isAncestor('</span> <span class="o">+</span> <span class="nx">haystack</span> <span class="o">+</span> <span class="s1">','</span> <span class="o">+</span> <span class="nx">needle</span> <span class="o">+</span> <span class="s1">' returning '</span> <span class="o">+</span> <span class="nx">ret</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Determines whether an HTMLElement is present in the current document.</span>
|
|
<span class="cm"> * @method inDocument </span>
|
|
<span class="cm"> * @param {String | HTMLElement} el The element to search for</span>
|
|
<span class="cm"> * @param {Object} doc An optional document to search, defaults to element's owner document </span>
|
|
<span class="cm"> * @return {Boolean} Whether or not the element is present in the current document</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">inDocument</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">doc</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_inDoc</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">el</span><span class="p">),</span> <span class="nx">doc</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_inDoc</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">doc</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">doc</span> <span class="o">=</span> <span class="nx">doc</span> <span class="o">||</span> <span class="nx">el</span><span class="p">[</span><span class="nx">OWNER_DOCUMENT</span><span class="p">];</span>
|
|
<span class="nx">ret</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">isAncestor</span><span class="p">(</span><span class="nx">doc</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">],</span> <span class="nx">el</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'inDocument failed: invalid input'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">ret</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an array of HTMLElements that pass the test applied by supplied boolean method.</span>
|
|
<span class="cm"> * For optimized performance, include a tag and/or root node when possible.</span>
|
|
<span class="cm"> * Note: This method operates against a live collection, so modifying the </span>
|
|
<span class="cm"> * collection in the callback (removing/appending nodes, etc.) will have</span>
|
|
<span class="cm"> * side effects. Instead you should iterate the returned nodes array,</span>
|
|
<span class="cm"> * as you would with the native "getElementsByTagName" method. </span>
|
|
<span class="cm"> * @method getElementsBy</span>
|
|
<span class="cm"> * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>
|
|
<span class="cm"> * @param {String} tag (optional) The tag name of the elements being collected</span>
|
|
<span class="cm"> * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} apply (optional) A function to apply to each element when found </span>
|
|
<span class="cm"> * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>
|
|
<span class="cm"> * @param {Boolean} overrides (optional) Whether or not to override the scope of "method" with "o"</span>
|
|
<span class="cm"> * @return {Array} Array of HTMLElements</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getElementsBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">method</span><span class="p">,</span> <span class="nx">tag</span><span class="p">,</span> <span class="nx">root</span><span class="p">,</span> <span class="nx">apply</span><span class="p">,</span> <span class="nx">o</span><span class="p">,</span> <span class="nx">overrides</span><span class="p">,</span> <span class="nx">firstOnly</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">tag</span> <span class="o">=</span> <span class="nx">tag</span> <span class="o">||</span> <span class="s1">'*'</span><span class="p">;</span>
|
|
<span class="nx">root</span> <span class="o">=</span> <span class="p">(</span><span class="nx">root</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">root</span><span class="p">)</span> <span class="o">:</span> <span class="kc">null</span> <span class="o">||</span> <span class="nb">document</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">root</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="p">[];</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">nodes</span> <span class="o">=</span> <span class="p">[],</span>
|
|
<span class="nx">elements</span> <span class="o">=</span> <span class="nx">root</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="nx">tag</span><span class="p">);</span>
|
|
|
|
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">method</span><span class="p">(</span><span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">firstOnly</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">nodes</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
|
|
<span class="k">break</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">nodes</span><span class="p">[</span><span class="nx">nodes</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">apply</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">nodes</span><span class="p">,</span> <span class="nx">apply</span><span class="p">,</span> <span class="nx">o</span><span class="p">,</span> <span class="nx">overrides</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getElementsBy returning '</span> <span class="o">+</span> <span class="nx">nodes</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
|
|
<span class="k">return</span> <span class="nx">nodes</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the first HTMLElement that passes the test applied by the supplied boolean method.</span>
|
|
<span class="cm"> * @method getElementBy</span>
|
|
<span class="cm"> * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>
|
|
<span class="cm"> * @param {String} tag (optional) The tag name of the elements being collected</span>
|
|
<span class="cm"> * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {HTMLElement}</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getElementBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">method</span><span class="p">,</span> <span class="nx">tag</span><span class="p">,</span> <span class="nx">root</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsBy</span><span class="p">(</span><span class="nx">method</span><span class="p">,</span> <span class="nx">tag</span><span class="p">,</span> <span class="nx">root</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Runs the supplied method against each item in the Collection/Array.</span>
|
|
<span class="cm"> * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).</span>
|
|
<span class="cm"> * @method batch</span>
|
|
<span class="cm"> * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to</span>
|
|
<span class="cm"> * @param {Function} method The method to apply to the element(s)</span>
|
|
<span class="cm"> * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>
|
|
<span class="cm"> * @param {Boolean} overrides (optional) Whether or not to override the scope of "method" with "o"</span>
|
|
<span class="cm"> * @return {Any | Array} The return value(s) from the supplied method</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">batch</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">method</span><span class="p">,</span> <span class="nx">o</span><span class="p">,</span> <span class="nx">overrides</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">collection</span> <span class="o">=</span> <span class="p">[],</span>
|
|
<span class="nx">scope</span> <span class="o">=</span> <span class="p">(</span><span class="nx">overrides</span><span class="p">)</span> <span class="o">?</span> <span class="nx">o</span> <span class="o">:</span> <span class="nb">window</span><span class="p">;</span>
|
|
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">]</span> <span class="o">||</span> <span class="nx">el</span><span class="p">.</span><span class="nx">item</span><span class="p">))</span> <span class="o">?</span> <span class="nx">el</span> <span class="o">:</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span> <span class="c1">// skip get() when possible</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">]</span> <span class="o">||</span> <span class="nx">el</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// element or not array-like </span>
|
|
<span class="k">return</span> <span class="nx">method</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">scope</span><span class="p">,</span> <span class="nx">el</span><span class="p">,</span> <span class="nx">o</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">el</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">collection</span><span class="p">[</span><span class="nx">collection</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">method</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">scope</span><span class="p">,</span> <span class="nx">el</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">o</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'batch called with invalid arguments'</span><span class="p">,</span> <span class="s1">'warn'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">collection</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the height of the document.</span>
|
|
<span class="cm"> * @method getDocumentHeight</span>
|
|
<span class="cm"> * @return {Int} The height of the actual document (which includes the body and its margin).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getDocumentHeight</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">scrollHeight</span> <span class="o">=</span> <span class="p">(</span><span class="nb">document</span><span class="p">[</span><span class="nx">COMPAT_MODE</span><span class="p">]</span> <span class="o">!=</span> <span class="nx">CSS1_COMPAT</span> <span class="o">||</span> <span class="nx">isSafari</span><span class="p">)</span> <span class="o">?</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollHeight</span> <span class="o">:</span> <span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollHeight</span><span class="p">,</span>
|
|
<span class="nx">h</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">scrollHeight</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">());</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getDocumentHeight returning '</span> <span class="o">+</span> <span class="nx">h</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">h</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the width of the document.</span>
|
|
<span class="cm"> * @method getDocumentWidth</span>
|
|
<span class="cm"> * @return {Int} The width of the actual document (which includes the body and its margin).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getDocumentWidth</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">scrollWidth</span> <span class="o">=</span> <span class="p">(</span><span class="nb">document</span><span class="p">[</span><span class="nx">COMPAT_MODE</span><span class="p">]</span> <span class="o">!=</span> <span class="nx">CSS1_COMPAT</span> <span class="o">||</span> <span class="nx">isSafari</span><span class="p">)</span> <span class="o">?</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollWidth</span> <span class="o">:</span> <span class="nx">documentElement</span><span class="p">.</span><span class="nx">scrollWidth</span><span class="p">,</span>
|
|
<span class="nx">w</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">scrollWidth</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">());</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getDocumentWidth returning '</span> <span class="o">+</span> <span class="nx">w</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">w</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the current height of the viewport.</span>
|
|
<span class="cm"> * @method getViewportHeight</span>
|
|
<span class="cm"> * @return {Int} The height of the viewable area of the page (excludes scrollbars).</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getViewportHeight</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">self</span><span class="p">.</span><span class="nx">innerHeight</span><span class="p">,</span> <span class="c1">// Safari, Opera</span>
|
|
<span class="nx">mode</span> <span class="o">=</span> <span class="nb">document</span><span class="p">[</span><span class="nx">COMPAT_MODE</span><span class="p">];</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span> <span class="p">(</span><span class="nx">mode</span> <span class="o">||</span> <span class="nx">isIE</span><span class="p">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">isOpera</span> <span class="p">)</span> <span class="p">{</span> <span class="c1">// IE, Gecko</span>
|
|
<span class="nx">height</span> <span class="o">=</span> <span class="p">(</span><span class="nx">mode</span> <span class="o">==</span> <span class="nx">CSS1_COMPAT</span><span class="p">)</span> <span class="o">?</span>
|
|
<span class="nx">documentElement</span><span class="p">.</span><span class="nx">clientHeight</span> <span class="o">:</span> <span class="c1">// Standards</span>
|
|
<span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">clientHeight</span><span class="p">;</span> <span class="c1">// Quirks</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getViewportHeight returning '</span> <span class="o">+</span> <span class="nx">height</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">height</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the current width of the viewport.</span>
|
|
<span class="cm"> * @method getViewportWidth</span>
|
|
<span class="cm"> * @return {Int} The width of the viewable area of the page (excludes scrollbars).</span>
|
|
<span class="cm"> */</span>
|
|
|
|
<span class="nx">getViewportWidth</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">self</span><span class="p">.</span><span class="nx">innerWidth</span><span class="p">,</span> <span class="c1">// Safari</span>
|
|
<span class="nx">mode</span> <span class="o">=</span> <span class="nb">document</span><span class="p">[</span><span class="nx">COMPAT_MODE</span><span class="p">];</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">mode</span> <span class="o">||</span> <span class="nx">isIE</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE, Gecko, Opera</span>
|
|
<span class="nx">width</span> <span class="o">=</span> <span class="p">(</span><span class="nx">mode</span> <span class="o">==</span> <span class="nx">CSS1_COMPAT</span><span class="p">)</span> <span class="o">?</span>
|
|
<span class="nx">documentElement</span><span class="p">.</span><span class="nx">clientWidth</span> <span class="o">:</span> <span class="c1">// Standards</span>
|
|
<span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">clientWidth</span><span class="p">;</span> <span class="c1">// Quirks</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getViewportWidth returning '</span> <span class="o">+</span> <span class="nx">width</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">width</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the nearest ancestor that passes the test applied by supplied boolean method.</span>
|
|
<span class="cm"> * For performance reasons, IDs are not accepted and argument validation omitted.</span>
|
|
<span class="cm"> * @method getAncestorBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getAncestorBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">while</span> <span class="p">(</span> <span class="p">(</span><span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">])</span> <span class="p">)</span> <span class="p">{</span> <span class="c1">// NOTE: assignment</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_testElement</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getAncestorBy returning '</span> <span class="o">+</span> <span class="nx">node</span><span class="p">,</span> <span class="s1">'info'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">node</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getAncestorBy returning null (no ancestor passed test)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the nearest ancestor with the given className.</span>
|
|
<span class="cm"> * @method getAncestorByClassName</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @param {String} className</span>
|
|
<span class="cm"> * @return {Object} HTMLElement</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getAncestorByClassName</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getAncestorByClassName failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="kd">var</span> <span class="nx">method</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">className</span><span class="p">);</span> <span class="p">};</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getAncestorBy</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the nearest ancestor with the given tagName.</span>
|
|
<span class="cm"> * @method getAncestorByTagName</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @param {String} tagName</span>
|
|
<span class="cm"> * @return {Object} HTMLElement</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getAncestorByTagName</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">tagName</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getAncestorByTagName failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="kd">var</span> <span class="nx">method</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">el</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">]</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">].</span><span class="nx">toUpperCase</span><span class="p">()</span> <span class="o">==</span> <span class="nx">tagName</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">();</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getAncestorBy</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the previous sibling that is an HTMLElement. </span>
|
|
<span class="cm"> * For performance reasons, IDs are not accepted and argument validation omitted.</span>
|
|
<span class="cm"> * Returns the nearest HTMLElement sibling if no method provided.</span>
|
|
<span class="cm"> * @method getPreviousSiblingBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} method A boolean function used to test siblings</span>
|
|
<span class="cm"> * that receives the sibling node being tested as its only argument</span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getPreviousSiblingBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">while</span> <span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">previousSibling</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_testElement</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">node</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the previous sibling that is an HTMLElement </span>
|
|
<span class="cm"> * @method getPreviousSibling</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getPreviousSibling</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getPreviousSibling failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getPreviousSiblingBy</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the next HTMLElement sibling that passes the boolean method. </span>
|
|
<span class="cm"> * For performance reasons, IDs are not accepted and argument validation omitted.</span>
|
|
<span class="cm"> * Returns the nearest HTMLElement sibling if no method provided.</span>
|
|
<span class="cm"> * @method getNextSiblingBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} method A boolean function used to test siblings</span>
|
|
<span class="cm"> * that receives the sibling node being tested as its only argument</span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getNextSiblingBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">while</span> <span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_testElement</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">node</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the next sibling that is an HTMLElement </span>
|
|
<span class="cm"> * @method getNextSibling</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getNextSibling</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getNextSibling failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getNextSiblingBy</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the first HTMLElement child that passes the test method. </span>
|
|
<span class="cm"> * @method getFirstChildBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} method A boolean function used to test children</span>
|
|
<span class="cm"> * that receives the node being tested as its only argument</span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getFirstChildBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_testElement</span><span class="p">(</span><span class="nx">node</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">)</span> <span class="o">?</span> <span class="nx">node</span><span class="p">.</span><span class="nx">firstChild</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="nx">child</span> <span class="o">||</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getNextSiblingBy</span><span class="p">(</span><span class="nx">node</span><span class="p">.</span><span class="nx">firstChild</span><span class="p">,</span> <span class="nx">method</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the first HTMLElement child. </span>
|
|
<span class="cm"> * @method getFirstChild</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getFirstChild</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getFirstChild failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getFirstChildBy</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the last HTMLElement child that passes the test method. </span>
|
|
<span class="cm"> * @method getLastChildBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to use as the starting point </span>
|
|
<span class="cm"> * @param {Function} method A boolean function used to test children</span>
|
|
<span class="cm"> * that receives the node being tested as its only argument</span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getLastChildBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getLastChild failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="p">(</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_testElement</span><span class="p">(</span><span class="nx">node</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">)</span> <span class="o">?</span> <span class="nx">node</span><span class="p">.</span><span class="nx">lastChild</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="nx">child</span> <span class="o">||</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getPreviousSiblingBy</span><span class="p">(</span><span class="nx">node</span><span class="p">.</span><span class="nx">lastChild</span><span class="p">,</span> <span class="nx">method</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the last HTMLElement child. </span>
|
|
<span class="cm"> * @method getLastChild</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {Object} HTMLElement or null if not found</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getLastChild</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getLastChildBy</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an array of HTMLElement childNodes that pass the test method. </span>
|
|
<span class="cm"> * @method getChildrenBy</span>
|
|
<span class="cm"> * @param {HTMLElement} node The HTMLElement to start from</span>
|
|
<span class="cm"> * @param {Function} method A boolean function used to test children</span>
|
|
<span class="cm"> * that receives the node being tested as its only argument</span>
|
|
<span class="cm"> * @return {Array} A static array of HTMLElements</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getChildrenBy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">child</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getFirstChildBy</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">),</span>
|
|
<span class="nx">children</span> <span class="o">=</span> <span class="nx">child</span> <span class="o">?</span> <span class="p">[</span><span class="nx">child</span><span class="p">]</span> <span class="o">:</span> <span class="p">[];</span>
|
|
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getNextSiblingBy</span><span class="p">(</span><span class="nx">child</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">method</span> <span class="o">||</span> <span class="nx">method</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">children</span><span class="p">[</span><span class="nx">children</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">node</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span> <span class="c1">// fail test to collect all children</span>
|
|
<span class="p">});</span>
|
|
|
|
<span class="k">return</span> <span class="nx">children</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns an array of HTMLElement childNodes. </span>
|
|
<span class="cm"> * @method getChildren</span>
|
|
<span class="cm"> * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>
|
|
<span class="cm"> * @return {Array} A static array of HTMLElements</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getChildren</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">node</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getChildren failed: invalid node argument'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getChildrenBy</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the left scroll value of the document </span>
|
|
<span class="cm"> * @method getDocumentScrollLeft</span>
|
|
<span class="cm"> * @param {HTMLDocument} document (optional) The document to get the scroll value of</span>
|
|
<span class="cm"> * @return {Int} The amount that the document is scrolled to the left</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getDocumentScrollLeft</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">doc</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">doc</span> <span class="o">=</span> <span class="nx">doc</span> <span class="o">||</span> <span class="nb">document</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">doc</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">].</span><span class="nx">scrollLeft</span><span class="p">,</span> <span class="nx">doc</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollLeft</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Returns the top scroll value of the document </span>
|
|
<span class="cm"> * @method getDocumentScrollTop</span>
|
|
<span class="cm"> * @param {HTMLDocument} document (optional) The document to get the scroll value of</span>
|
|
<span class="cm"> * @return {Int} The amount that the document is scrolled to the top</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getDocumentScrollTop</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">doc</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">doc</span> <span class="o">=</span> <span class="nx">doc</span> <span class="o">||</span> <span class="nb">document</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">doc</span><span class="p">[</span><span class="nx">DOCUMENT_ELEMENT</span><span class="p">].</span><span class="nx">scrollTop</span><span class="p">,</span> <span class="nx">doc</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">scrollTop</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Inserts the new node as the previous sibling of the reference node </span>
|
|
<span class="cm"> * @method insertBefore</span>
|
|
<span class="cm"> * @param {String | HTMLElement} newNode The node to be inserted</span>
|
|
<span class="cm"> * @param {String | HTMLElement} referenceNode The node to insert the new node before </span>
|
|
<span class="cm"> * @return {HTMLElement} The node that was inserted (or null if insert fails) </span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">insertBefore</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">newNode</span><span class="p">,</span> <span class="nx">referenceNode</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">newNode</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">newNode</span><span class="p">);</span>
|
|
<span class="nx">referenceNode</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">referenceNode</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">newNode</span> <span class="o">||</span> <span class="o">!</span><span class="nx">referenceNode</span> <span class="o">||</span> <span class="o">!</span><span class="nx">referenceNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'insertAfter failed: missing or invalid arg(s)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">referenceNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">].</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">newNode</span><span class="p">,</span> <span class="nx">referenceNode</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Inserts the new node as the next sibling of the reference node </span>
|
|
<span class="cm"> * @method insertAfter</span>
|
|
<span class="cm"> * @param {String | HTMLElement} newNode The node to be inserted</span>
|
|
<span class="cm"> * @param {String | HTMLElement} referenceNode The node to insert the new node after </span>
|
|
<span class="cm"> * @return {HTMLElement} The node that was inserted (or null if insert fails) </span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">insertAfter</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">newNode</span><span class="p">,</span> <span class="nx">referenceNode</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">newNode</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">newNode</span><span class="p">);</span>
|
|
<span class="nx">referenceNode</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">referenceNode</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">newNode</span> <span class="o">||</span> <span class="o">!</span><span class="nx">referenceNode</span> <span class="o">||</span> <span class="o">!</span><span class="nx">referenceNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'insertAfter failed: missing or invalid arg(s)'</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">referenceNode</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">referenceNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">].</span><span class="nx">insertBefore</span><span class="p">(</span><span class="nx">newNode</span><span class="p">,</span> <span class="nx">referenceNode</span><span class="p">.</span><span class="nx">nextSibling</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">referenceNode</span><span class="p">[</span><span class="nx">PARENT_NODE</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">newNode</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Creates a Region based on the viewport relative to the document. </span>
|
|
<span class="cm"> * @method getClientRegion</span>
|
|
<span class="cm"> * @return {Region} A Region object representing the viewport which accounts for document scroll</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getClientRegion</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">(),</span>
|
|
<span class="nx">l</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">(),</span>
|
|
<span class="nx">r</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">()</span> <span class="o">+</span> <span class="nx">l</span><span class="p">,</span>
|
|
<span class="nx">b</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">()</span> <span class="o">+</span> <span class="nx">t</span><span class="p">;</span>
|
|
|
|
<span class="k">return</span> <span class="k">new</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Region</span><span class="p">(</span><span class="nx">t</span><span class="p">,</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">l</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Provides a normalized attribute interface. </span>
|
|
<span class="cm"> * @method setAttribute</span>
|
|
<span class="cm"> * @param {String | HTMLElement} el The target element for the attribute.</span>
|
|
<span class="cm"> * @param {String} attr The attribute to set.</span>
|
|
<span class="cm"> * @param {String} val The value of the attribute.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">setAttribute</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">attr</span><span class="p">,</span> <span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_setAttribute</span><span class="p">,</span> <span class="p">{</span> <span class="nx">attr</span><span class="o">:</span> <span class="nx">attr</span><span class="p">,</span> <span class="nx">val</span><span class="o">:</span> <span class="nx">val</span> <span class="p">});</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_setAttribute</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">attr</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_toCamel</span><span class="p">(</span><span class="nx">args</span><span class="p">.</span><span class="nx">attr</span><span class="p">),</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">DOT_ATTRIBUTES</span><span class="p">[</span><span class="nx">attr</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">el</span><span class="p">[</span><span class="nx">attr</span><span class="p">]</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">attr</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">CUSTOM_ATTRIBUTES</span><span class="p">[</span><span class="nx">attr</span><span class="p">]</span> <span class="o">||</span> <span class="nx">attr</span><span class="p">;</span>
|
|
<span class="nx">el</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="nx">attr</span><span class="p">,</span> <span class="nx">val</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'setAttribute method not available for '</span> <span class="o">+</span> <span class="nx">el</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Provides a normalized attribute interface. </span>
|
|
<span class="cm"> * @method getAttribute</span>
|
|
<span class="cm"> * @param {String | HTMLElement} el The target element for the attribute.</span>
|
|
<span class="cm"> * @param {String} attr The attribute to get.</span>
|
|
<span class="cm"> * @return {String} The current value of the attribute. </span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">getAttribute</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">attr</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">batch</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_getAttribute</span><span class="p">,</span> <span class="nx">attr</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
|
|
<span class="nx">_getAttribute</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">attr</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="nx">attr</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">CUSTOM_ATTRIBUTES</span><span class="p">[</span><span class="nx">attr</span><span class="p">]</span> <span class="o">||</span> <span class="nx">attr</span><span class="p">;</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">el</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="nx">attr</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">'getAttribute method not available for '</span> <span class="o">+</span> <span class="nx">el</span><span class="p">,</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'Dom'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_toCamel</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">property</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nx">propertyCache</span><span class="p">;</span>
|
|
|
|
<span class="kd">function</span> <span class="nx">tU</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">l</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">l</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">c</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">||</span> <span class="p">(</span><span class="nx">c</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">=</span> <span class="nx">property</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'-'</span><span class="p">)</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span> <span class="o">?</span>
|
|
<span class="nx">property</span> <span class="o">:</span>
|
|
<span class="nx">property</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/-([a-z])/gi</span><span class="p">,</span> <span class="nx">tU</span> <span class="p">));</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_getClassRegex</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">className</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">re</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">className</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// allow empty string to pass</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">className</span><span class="p">.</span><span class="nx">exec</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// already a RegExp</span>
|
|
<span class="nx">re</span> <span class="o">=</span> <span class="nx">className</span><span class="p">;</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">re</span> <span class="o">=</span> <span class="nx">reCache</span><span class="p">[</span><span class="nx">className</span><span class="p">];</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">re</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="c1">// escape special chars (".", "[", etc.)</span>
|
|
<span class="nx">className</span> <span class="o">=</span> <span class="nx">className</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">_patterns</span><span class="p">.</span><span class="nx">CLASS_RE_TOKENS</span><span class="p">,</span> <span class="s1">'\\$1'</span><span class="p">);</span>
|
|
<span class="nx">re</span> <span class="o">=</span> <span class="nx">reCache</span><span class="p">[</span><span class="nx">className</span><span class="p">]</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="nx">C_START</span> <span class="o">+</span> <span class="nx">className</span> <span class="o">+</span> <span class="nx">C_END</span><span class="p">,</span> <span class="nx">G</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="nx">re</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_patterns</span><span class="o">:</span> <span class="p">{</span>
|
|
<span class="nx">ROOT_TAG</span><span class="o">:</span> <span class="sr">/^body|html$/i</span><span class="p">,</span> <span class="c1">// body for quirks mode, html for standards,</span>
|
|
<span class="nx">CLASS_RE_TOKENS</span><span class="o">:</span> <span class="sr">/([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g</span>
|
|
<span class="p">},</span>
|
|
|
|
|
|
<span class="nx">_testElement</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="nx">node</span> <span class="o">&&</span> <span class="nx">node</span><span class="p">[</span><span class="nx">NODE_TYPE</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">&&</span> <span class="p">(</span> <span class="o">!</span><span class="nx">method</span> <span class="o">||</span> <span class="nx">method</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="nx">_calcBorders</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">xy2</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">](</span><span class="nx">node</span><span class="p">,</span> <span class="nx">BORDER_TOP_WIDTH</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span>
|
|
<span class="nx">l</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">](</span><span class="nx">node</span><span class="p">,</span> <span class="nx">BORDER_LEFT_WIDTH</span><span class="p">),</span> <span class="mi">10</span><span class="p">)</span> <span class="o">||</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isGecko</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">RE_TABLE</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">node</span><span class="p">[</span><span class="nx">TAG_NAME</span><span class="p">]))</span> <span class="p">{</span>
|
|
<span class="nx">t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="nx">l</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">xy2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">l</span><span class="p">;</span>
|
|
<span class="nx">xy2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="nx">t</span><span class="p">;</span>
|
|
<span class="k">return</span> <span class="nx">xy2</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">_getComputedStyle</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">];</span>
|
|
<span class="c1">// fix opera computedStyle default color unit (convert to rgb)</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">att</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">_getComputedStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">att</span><span class="p">);</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">RE_COLOR</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">att</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">Color</span><span class="p">.</span><span class="nx">toRGB</span><span class="p">(</span><span class="nx">val</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="p">}</span>
|
|
|
|
<span class="c1">// safari converts transparent to rgba(), others use "transparent"</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">webkit</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">[</span><span class="nx">GET_COMPUTED_STYLE</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">att</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">_getComputedStyle</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">att</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">===</span> <span class="s1">'rgba(0, 0, 0, 0)'</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">val</span> <span class="o">=</span> <span class="s1">'transparent'</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">val</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o">&&</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o">>=</span> <span class="mi">8</span> <span class="o">&&</span> <span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">hasAttribute</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE 8 standards</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">DOT_ATTRIBUTES</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="c1">// IE 8 errors on input.setAttribute('type')</span>
|
|
<span class="p">}</span>
|
|
<span class="p">})();</span>
|
|
</pre></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div id="moduleList" class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="module_animation.html" title="animation">animation</a></li>
|
|
<li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
|
|
<li class=""><a href="module_button.html" title="button">button</a></li>
|
|
<li class=""><a href="module_calendar.html" title="calendar">calendar</a></li>
|
|
<li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
|
|
<li class=""><a href="module_charts.html" title="charts">charts</a></li>
|
|
<li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
|
|
<li class=""><a href="module_connection.html" title="connection">connection</a></li>
|
|
<li class=""><a href="module_container.html" title="container">container</a></li>
|
|
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
|
|
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
|
|
<li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
|
|
<li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
|
|
<li class="selected"><a href="module_dom.html" title="dom">dom</a></li>
|
|
<li class=""><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
|
|
<li class=""><a href="module_editor.html" title="editor">editor</a></li>
|
|
<li class=""><a href="module_element.html" title="element">element</a></li>
|
|
<li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
|
|
<li class=""><a href="module_event.html" title="event">event</a></li>
|
|
<li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
|
|
<li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
|
|
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
|
|
<li class=""><a href="module_get.html" title="get">get</a></li>
|
|
<li class=""><a href="module_history.html" title="history">history</a></li>
|
|
<li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
|
|
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
|
|
<li class=""><a href="module_json.html" title="json">json</a></li>
|
|
<li class=""><a href="module_layout.html" title="layout">layout</a></li>
|
|
<li class=""><a href="module_logger.html" title="logger">logger</a></li>
|
|
<li class=""><a href="module_menu.html" title="menu">menu</a></li>
|
|
<li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
|
|
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
|
|
<li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
|
|
<li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
|
|
<li class=""><a href="module_resize.html" title="resize">resize</a></li>
|
|
<li class=""><a href="module_selector.html" title="selector">selector</a></li>
|
|
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
|
|
<li class=""><a href="module_storage.html" title="Storage">Storage</a></li>
|
|
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
|
|
<li class=""><a href="module_swf.html" title="swf">swf</a></li>
|
|
<li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
|
|
<li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
|
|
<li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
|
|
<li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
|
|
<li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
|
|
<li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
|
|
<li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
|
|
<li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="classList" class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.util.Dom.html" title="YAHOO.util.Dom">YAHOO.util.Dom</a></li>
|
|
<li class=""><a href="YAHOO.util.Dom.Color.html" title="YAHOO.util.Dom.Color">YAHOO.util.Dom.Color</a></li>
|
|
<li class=""><a href="YAHOO.util.Dom.IEStyle.html" title="YAHOO.util.Dom.IEStyle">YAHOO.util.Dom.IEStyle</a></li>
|
|
<li class=""><a href="YAHOO.util.Point.html" title="YAHOO.util.Point">YAHOO.util.Point</a></li>
|
|
<li class=""><a href="YAHOO.util.Region.html" title="YAHOO.util.Region">YAHOO.util.Region</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="fileList" class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="Color.js.html" title="Color.js">Color.js</a></li>
|
|
<li class="selected"><a href="Dom.js.html" title="Dom.js">Dom.js</a></li>
|
|
<li class=""><a href="IEStyle.js.html" title="IEStyle.js">IEStyle.js</a></li>
|
|
<li class=""><a href="Region.js.html" title="Region.js">Region.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2010 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
|
|
var ALL_YUI_PROPS = [{"access": "", "host": "YAHOO.util.Region", "name": "0", "url": "YAHOO.util.Region.html#property_0", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "1", "url": "YAHOO.util.Region.html#property_1", "type": "property"}, {"access": "", "host": "YAHOO.util.Dom", "name": "addClass", "url": "YAHOO.util.Dom.html#method_addClass", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "batch", "url": "YAHOO.util.Dom.html#method_batch", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "bottom", "url": "YAHOO.util.Region.html#property_bottom", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "contains", "url": "YAHOO.util.Region.html#method_contains", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "generateId", "url": "YAHOO.util.Dom.html#method_generateId", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "get", "url": "YAHOO.util.Dom.html#method_get", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "get", "url": "YAHOO.util.Dom.IEStyle.html#method_get", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getAncestorBy", "url": "YAHOO.util.Dom.html#method_getAncestorBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getAncestorByClassName", "url": "YAHOO.util.Dom.html#method_getAncestorByClassName", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getAncestorByTagName", "url": "YAHOO.util.Dom.html#method_getAncestorByTagName", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "getArea", "url": "YAHOO.util.Region.html#method_getArea", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getAttribute", "url": "YAHOO.util.Dom.html#method_getAttribute", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getBorderColor", "url": "YAHOO.util.Dom.IEStyle.html#method_getBorderColor", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getBorderWidth", "url": "YAHOO.util.Dom.IEStyle.html#method_getBorderWidth", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getChildren", "url": "YAHOO.util.Dom.html#method_getChildren", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getChildrenBy", "url": "YAHOO.util.Dom.html#method_getChildrenBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getClientHeight", "url": "YAHOO.util.Dom.html#method_getClientHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getClientRegion", "url": "YAHOO.util.Dom.html#method_getClientRegion", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getClientWidth", "url": "YAHOO.util.Dom.html#method_getClientWidth", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getColor", "url": "YAHOO.util.Dom.IEStyle.html#method_getColor", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getDocumentHeight", "url": "YAHOO.util.Dom.html#method_getDocumentHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getDocumentScrollLeft", "url": "YAHOO.util.Dom.html#method_getDocumentScrollLeft", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getDocumentScrollTop", "url": "YAHOO.util.Dom.html#method_getDocumentScrollTop", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getDocumentWidth", "url": "YAHOO.util.Dom.html#method_getDocumentWidth", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getElementBy", "url": "YAHOO.util.Dom.html#method_getElementBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getElementsBy", "url": "YAHOO.util.Dom.html#method_getElementsBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getElementsByClassName", "url": "YAHOO.util.Dom.html#method_getElementsByClassName", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getFirstChild", "url": "YAHOO.util.Dom.html#method_getFirstChild", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getFirstChildBy", "url": "YAHOO.util.Dom.html#method_getFirstChildBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getLastChild", "url": "YAHOO.util.Dom.html#method_getLastChild", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getLastChildBy", "url": "YAHOO.util.Dom.html#method_getLastChildBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getMargin", "url": "YAHOO.util.Dom.IEStyle.html#method_getMargin", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getNextSibling", "url": "YAHOO.util.Dom.html#method_getNextSibling", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getNextSiblingBy", "url": "YAHOO.util.Dom.html#method_getNextSiblingBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getOffset", "url": "YAHOO.util.Dom.IEStyle.html#method_getOffset", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getPixel", "url": "YAHOO.util.Dom.IEStyle.html#method_getPixel", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getPreviousSibling", "url": "YAHOO.util.Dom.html#method_getPreviousSibling", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getPreviousSiblingBy", "url": "YAHOO.util.Dom.html#method_getPreviousSiblingBy", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getRegion", "url": "YAHOO.util.Dom.html#method_getRegion", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "getRegion", "url": "YAHOO.util.Region.html#method_getRegion", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getStyle", "url": "YAHOO.util.Dom.html#method_getStyle", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getViewportHeight", "url": "YAHOO.util.Dom.html#method_getViewportHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getViewportWidth", "url": "YAHOO.util.Dom.html#method_getViewportWidth", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.IEStyle", "name": "getVisibility", "url": "YAHOO.util.Dom.IEStyle.html#method_getVisibility", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getX", "url": "YAHOO.util.Dom.html#method_getX", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getXY", "url": "YAHOO.util.Dom.html#method_getXY", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "getY", "url": "YAHOO.util.Dom.html#method_getY", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "hasClass", "url": "YAHOO.util.Dom.html#method_hasClass", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "height", "url": "YAHOO.util.Region.html#property_height", "type": "property"}, {"access": "", "host": "YAHOO.util.Dom", "name": "inDocument", "url": "YAHOO.util.Dom.html#method_inDocument", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "insertAfter", "url": "YAHOO.util.Dom.html#method_insertAfter", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "insertBefore", "url": "YAHOO.util.Dom.html#method_insertBefore", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "intersect", "url": "YAHOO.util.Region.html#method_intersect", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "isAncestor", "url": "YAHOO.util.Dom.html#method_isAncestor", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.Color", "name": "KEYWORDS", "url": "YAHOO.util.Dom.Color.html#property_KEYWORDS", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "left", "url": "YAHOO.util.Region.html#property_left", "type": "property"}, {"access": "private", "host": "YAHOO.util.Dom.Color", "name": "re_hex", "url": "YAHOO.util.Dom.Color.html#property_re_hex", "type": "property"}, {"access": "private", "host": "YAHOO.util.Dom.Color", "name": "re_hex3", "url": "YAHOO.util.Dom.Color.html#property_re_hex3", "type": "property"}, {"access": "", "host": "YAHOO.util.Dom", "name": "removeClass", "url": "YAHOO.util.Dom.html#method_removeClass", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "replaceClass", "url": "YAHOO.util.Dom.html#method_replaceClass", "type": "method"}, {"access": "private", "host": "YAHOO.util.Dom.Color", "name": "re_RGB", "url": "YAHOO.util.Dom.Color.html#property_re_RGB", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "right", "url": "YAHOO.util.Region.html#property_right", "type": "property"}, {"access": "", "host": "YAHOO.util.Dom", "name": "setAttribute", "url": "YAHOO.util.Dom.html#method_setAttribute", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "setStyle", "url": "YAHOO.util.Dom.html#method_setStyle", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "setX", "url": "YAHOO.util.Dom.html#method_setX", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "setXY", "url": "YAHOO.util.Dom.html#method_setXY", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom", "name": "setY", "url": "YAHOO.util.Dom.html#method_setY", "type": "method"}, {"access": "", "host": "YAHOO.util.Dom.Color", "name": "toHex", "url": "YAHOO.util.Dom.Color.html#method_toHex", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "top", "url": "YAHOO.util.Region.html#property_top", "type": "property"}, {"access": "", "host": "YAHOO.util.Dom.Color", "name": "toRGB", "url": "YAHOO.util.Dom.Color.html#method_toRGB", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "toString", "url": "YAHOO.util.Region.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "union", "url": "YAHOO.util.Region.html#method_union", "type": "method"}, {"access": "", "host": "YAHOO.util.Region", "name": "width", "url": "YAHOO.util.Region.html#property_width", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "x", "url": "YAHOO.util.Region.html#property_x", "type": "property"}, {"access": "", "host": "YAHOO.util.Region", "name": "y", "url": "YAHOO.util.Region.html#property_y", "type": "property"}];
|
|
</script>
|
|
</body>
|
|
</html>
|