<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>DOMAssistant development blog</title>
	
	<link>http://www.domassistant.com/blog</link>
	<description>The blog about the development of the DOMAssistant JavaScript library</description>
	<lastBuildDate>Sun, 25 Dec 2011 15:42:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.6</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DomassistantDevelopmentBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="domassistantdevelopmentblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>DOMAssistant 2.8.1</title>
		<link>http://www.domassistant.com/blog/2011/11/24/domassistant-281/</link>
		<comments>http://www.domassistant.com/blog/2011/11/24/domassistant-281/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 17:09:22 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8.1]]></category>
		<category><![CDATA[DOMAssistant]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2011/11/24/domassistant-281/</guid>
		<description><![CDATA[A new build of DOMAssistant has been made available just in time for Thanksgiving! This is a maintenance release which fixed a couple of IE selector bugs since v2.8, and also has improved support for the latest versions of browsers. Download DOMAssistant 2.8.1 Complete DOMAssistant 2.8.1 Compressed Change Log [Fix] attribute selector [value*=''], [value^=''] and [value$=''] [...]]]></description>
			<content:encoded><![CDATA[<p>A new build of DOMAssistant has been made available just in time for Thanksgiving! This is a maintenance release which fixed a couple of IE selector bugs since v2.8, and also has improved support for the latest versions of browsers.</p>
<h3><strong>Download</strong></h3>
<ul>
<li><a href="http://code.google.com/p/domassistant/downloads/detail?name=DOMAssistantComplete-2.8.1.js">DOMAssistant 2.8.1 Complete</a></li>
<li><a href="http://code.google.com/p/domassistant/downloads/detail?name=DOMAssistantCompressed-2.8.1.js">DOMAssistant 2.8.1 Compressed</a></li>
</ul>
<h3><strong>Change Log</strong></h3>
<ul>
<li>[Fix] attribute selector [value*=''], [value^=''] and [value$=''] do not work in IE</li>
<li>[Fix] :empty does not select elements that contain only comment nodes in IE</li>
<li>[Fix] setAttributes() does not work in IE9</li>
<li>[Fix] Special events handling in IE9</li>
<li>[Fix] Selecting dashed attributes does not work in IE</li>
<li>[Fix] Unable to select empty attributes in IE</li>
<li>[Fix] :not([attrib]) does not work in IE</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2011/11/24/domassistant-281/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.8 final released</title>
		<link>http://www.domassistant.com/blog/2010/03/05/domassistant-28-final-released/</link>
		<comments>http://www.domassistant.com/blog/2010/03/05/domassistant-28-final-released/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 03:36:53 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8]]></category>
		<category><![CDATA[DOMAssistant]]></category>
		<category><![CDATA[final]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2010/03/05/domassistant-28-final-released/</guid>
		<description><![CDATA[The final DOMAssistant 2.8 is now available for download. There are numerous new features and improvements in 2.8, most notably: Event delegation, with support for form events (focus, blur, submit, reset, change, select) Element storage The harmony mode New array extras removeEvent enhancement Cross-browser support for mouseenter/mouseleave events New hasChild method to allow testing for [...]]]></description>
			<content:encoded><![CDATA[<p>The final DOMAssistant 2.8 is now available for <a href="http://www.domassistant.com/download/">download</a>. There are numerous new features and improvements in 2.8, most notably:</p>
<ul>
<li><a href="http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/">Event delegation</a>, with support for form events (focus, blur, submit, reset, change, select)</li>
<li><a href="http://www.domassistant.com/documentation/DOMAssistantCore-module.php#store">Element storage</a></li>
<li>The <a href="http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/">harmony</a> mode</li>
<li>New <a href="http://www.domassistant.com/documentation/DOMAssistantCore-module.php#indexOf">array extras</a></li>
<li><a href="http://www.domassistant.com/documentation/DOMAssistantEvents-module.php#removeEvent">removeEvent</a> enhancement</li>
<li>Cross-browser support for mouseenter/mouseleave events</li>
<li>New <a href="http://www.domassistant.com/documentation/DOMAssistantCore-module.php#hasChild">hasChild</a> method to allow testing for descendant</li>
</ul>
<p>For a complete list of changes and bug fixes, please refer to the <a href="http://domassistant.googlecode.com/svn/branches/Release-notes.txt">release notes</a>. The documentation has also been updated for both <a href="http://www.domassistant.com/documentation/">online</a> and <a href="http://www.domassistant.com/documentation/domassistant-documentation.pdf">offline</a> reading.</p>
<p>Note that there is a potential imcompatiblity with version 2.7.x in events handling. Do read about it on the <a href="http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/">beta 1 release post</a>.</p>
<p>Thank you and we hope you like the latest DOMAssistant!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2010/03/05/domassistant-28-final-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.8 Release Candidate 1</title>
		<link>http://www.domassistant.com/blog/2010/02/09/domassistant-28-release-candidate-1/</link>
		<comments>http://www.domassistant.com/blog/2010/02/09/domassistant-28-release-candidate-1/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 09:08:47 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[DOMAssistant]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2010/02/09/domassistant-28-release-candidate-1/</guid>
		<description><![CDATA[First release candidate for 2.8 is available! Changes since beta 4: [Chg] clientX/Y are now left untouched. Use pageX/Y instead to retrieve mouse coordinates relative to the top left of a document [Fix] mouseenter/mouseleave do not work in relayEvent [Fix] Event.relatedTarget incorrect in IE [Fix] Event objects are sometimes &#8216;fixed&#8217; more than once [Fix] $(window).addEvent() [...]]]></description>
			<content:encoded><![CDATA[<p>First release candidate for 2.8 is available!</p>
<p>Changes since <a href="http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/">beta 4</a>:</p>
<ul>
<li>[Chg] clientX/Y are now left untouched. Use pageX/Y instead to retrieve mouse coordinates relative to the top left of a document</li>
<li>[Fix] mouseenter/mouseleave do not work in relayEvent</li>
<li>[Fix] Event.relatedTarget incorrect in IE</li>
<li>[Fix] Event objects are sometimes &#8216;fixed&#8217; more than once</li>
<li>[Fix] $(window).addEvent() adds the event twice in certain browsers</li>
</ul>
<h2>Download</h2>
<ul>
<li><a href="http://www.domassistant.com/beta/2.8rc1/DOMAssistantComplete.js">DOMAssistant  2.8 RC 1, Complete</a> (50KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8rc1/DOMAssistantCompressed.js">DOMAssistant  2.8 RC 1, Compressed</a> (29KB)</li>
</ul>
<p>Work is now concentrated on stabilization and performance enhancement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2010/02/09/domassistant-28-release-candidate-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Beta 4 has landed – DOMAssistant 2.8 gains support for form events delegation</title>
		<link>http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/</link>
		<comments>http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 06:39:00 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[DOMAssistant]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/</guid>
		<description><![CDATA[DOMAssistant 2.8 introduces event delegation since beta 1, via the methods relayEvent() and unrelayEvent(). Event delegation relies on the bubbling characteristics of events, which, unsurprisingly, do not behave consistently across browsers. Beta 1 ensures support for &#8216;focus&#8217; and &#8216;blur&#8217;; beta 4 takes it a step further by providing support for traditionally non-bubbly form events on IE &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>DOMAssistant 2.8 <a href="http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/">introduces</a> event delegation since beta 1, via the methods relayEvent() and unrelayEvent(). Event delegation relies on the bubbling characteristics of events, which, unsurprisingly, do not behave consistently across browsers. Beta 1 ensures support for &#8216;focus&#8217; and &#8216;blur&#8217;; beta 4 takes it a step further by providing support for traditionally non-bubbly form events on IE &#8211; &#8216;submit&#8217;, &#8216;reset&#8217;, &#8216;change&#8217; and &#8216;select&#8217;. Special thanks to Greg Reimer for inspiration of the <a href="http://blogs.sun.com/greimer/entry/event_delegation_for_submit_change">technique</a>.</p>
<p>Changes since <a href="http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/">beta 3</a>:</p>
<ul>
<li>[New] Added relayEvent support for form events submit/reset/change/select</li>
<li>[New] Cross-browser support for mouseenter and mouseleave events</li>
<li>[Chg] removeEvent() now removes all events that are bound to an element (including inline ones) when triggered without arguments</li>
<li>[Fix] [selected=selected], [readonly=readonly] now work the same as [selected], [readonly]</li>
<li>[Fix] Memory leakage associated with data storage and events</li>
<li>[Fix] Minor performance improvement in internal cleanUp method</li>
</ul>
<h2>Download</h2>
<ul>
<li><a href="http://www.domassistant.com/beta/2.8b4/DOMAssistantComplete.js">DOMAssistant 2.8 beta 4, Complete</a> (50KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8b4/DOMAssistantCompressed.js">DOMAssistant 2.8 beta 4, Compressed</a> (29KB)</li>
</ul>
<p>Feature set for DOMAssistant 2.8 will be freezed from this point onward. Now time for bug hunting and fixing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2010/02/04/beta-4-has-landed-domassistant-28-gains-support-for-form-events-delegation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.8 hits beta 3</title>
		<link>http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/</link>
		<comments>http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 16:00:10 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[DOMAssistant]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/</guid>
		<description><![CDATA[Changes since beta 2: [New] Ability to avoid global namespace collision of $ and $$ with DOMAssistant.harmonize() [Fix] ID selectors containing $ and = do not work [Fix] Some events cannot be removed via removeEvent, such as mutation events Introducing the &#8216;harmony&#8217; mode The harmony mode allows DOMAssistant to live with other Javascript libraries on [...]]]></description>
			<content:encoded><![CDATA[<p>Changes since <a href="http://www.domassistant.com/blog/2010/01/26/domassistant-28-beta-2-now-available/">beta 2</a>:</p>
<ul>
<li>[New] Ability to avoid global namespace collision of $ and $$ with DOMAssistant.harmonize()</li>
<li>[Fix] ID selectors containing $ and = do not work</li>
<li>[Fix] Some events cannot be removed via removeEvent, such as mutation events</li>
</ul>
<h2>Introducing the &#8216;harmony&#8217; mode</h2>
<p>The harmony mode allows DOMAssistant to live with other Javascript libraries on the same page without conflict. To use it, just invoke DOMAssistant.harmonize(), like so:</p>
<pre>&lt;script type="text/javascript" src="DOMAssistantCompressed.js"&gt; &lt;/script&gt;
&lt;script type="text/javascript"&gt;
    DOMAssistant.DOMReady( function() {
        // Use $ and $$ like you always have
    } );
    DOMAssistant.harmonize();
    var divs = DOMAssistant.$('div');
&lt;/script&gt;
&lt;script type="text/javascript" src="AnotherLib.js"&gt; &lt;/script&gt;</pre>
<h2>Download</h2>
<ul>
<li><a href="http://www.domassistant.com/beta/2.8b3/DOMAssistantComplete.js">DOMAssistant 2.8 beta 3, Complete</a> (48KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8b3/DOMAssistantCompressed.js">DOMAssistant 2.8 beta 3, Compressed</a> (28KB)</li>
</ul>
<p>We appreciate if you could report any abnormalities you might find in this beta. Version 2.8 is now closer to release than ever!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2010/02/01/domassistant-28-hits-beta-3/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.8 beta 2 now available</title>
		<link>http://www.domassistant.com/blog/2010/01/26/domassistant-28-beta-2-now-available/</link>
		<comments>http://www.domassistant.com/blog/2010/01/26/domassistant-28-beta-2-now-available/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:03:11 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2.8]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[DOMAssistant]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2010/01/26/domassistant-28-beta-2-now-available/</guid>
		<description><![CDATA[Changes since beta 1: [Chg] Updated implementation of event.clientX/Y and event.relatedTarget [Chg] focus/blur on IE now uses activate/deactivate instead of focusin/focusout for better IE5.5 support [Fix] Regression bug where event handler cannot be added again after being removed. [Fix] :nth-of-type, nly-of-type buggy in IE [Fix] Negated pseudo-classes do not work [Fix] Selectors that start with &#62;, [...]]]></description>
			<content:encoded><![CDATA[<p>Changes since <a href="http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/">beta 1</a>:
<ul>
<li>[Chg] Updated implementation of event.clientX/Y and event.relatedTarget</li>
<li>[Chg] focus/blur on IE now uses activate/deactivate instead of focusin/focusout for better IE5.5 support</li>
<li>[Fix] Regression bug where event handler cannot be added again after being removed.</li>
<li>[Fix] :nth-of-type, <img src='http://www.domassistant.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly-of-type buggy in IE</li>
<li>[Fix] Negated pseudo-classes do not work</li>
<li>[Fix] Selectors that start with &gt;, + and ~ do not work in IE</li>
<li>[Fix] Comment nodes not skipped in IE for certain selectors</li>
<li>[Fix] setStyle(&#8216;display&#8217;, &#8216;none&#8217;) does not work properly in IE when the element is relatively positioned</li>
</ul>
<h2>Download</h2>
<ul>
<li><a href="http://www.domassistant.com/beta/2.8b2/DOMAssistantComplete.js">DOMAssistant 2.8 beta 2, Complete</a> (48KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8b2/DOMAssistantCompressed.js">DOMAssistant 2.8 beta 2, Compressed</a> (28KB)</li>
</ul>
<p>Although beta 2 has been tested rigorously on the updated <a href="http://www.domassistant.com/sugar/">unit test suite</a>, please report any bugs you might find.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2010/01/26/domassistant-28-beta-2-now-available/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.8 beta 1 released</title>
		<link>http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/</link>
		<comments>http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 20:19:58 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/</guid>
		<description><![CDATA[After being in development for the past few months, DOMAssistant 2.8 is finally ripe for public testing. Version 2.8 brings a modest set of new features and enhancements, most notably event delegation and element storage, as well as fixes many ugly bugs from the 2.7 branch. A formal unit test suite is also introduced for more systematic testing [...]]]></description>
			<content:encoded><![CDATA[<p>After being in development for the past few months, DOMAssistant 2.8 is finally ripe for public testing. Version 2.8 brings a modest set of new features and enhancements, most notably event delegation and element storage, as well as fixes many ugly bugs from the 2.7 branch. A formal unit test suite is also introduced for more systematic testing on supported browsers.<span id="more-26"></span></p>
<h2>Event delegation</h2>
<p>For those new to event delegation, it is the idea of attaching event handlers onto parent elements rather than on individual elements, base on the fact that events bubble up the DOM tree. Event delegation offers some compelling benefits: less memory consumption, faster events setup and automatic binding of future elements. Such events are sometimes referred to as &#8216;live&#8217; events.</p>
<p>Event delegation in DOMAssistant 2.8 is provided by the new relayEvent() and unrelayEvent() methods. If you have an unordered list of 100 items and you want to attach an onclick handler onto each of them, you can now use delegation instead:</p>
<pre>$('ul#myLinks').relayEvent('click', 'li', jumpToPage);</pre>
<p>In addition to all events that bubble, focus and blur are also supported:</p>
<pre>$('form').relayEvent('focus', 'input[type=text]', function() {
    this.addClass('yellow');
});</pre>
<p>And they can be removed with unrelayEvent():</p>
<pre>$('ul').unrelayEvent('click');</pre>
<h2>Element storage</h2>
<p>In web application development it is a common requirement to associate arbitrary data with DOM elements. While it can be done by direct property assignment, doing so poses a high risk of memory leak, particularly in Internet Explorer. DOMAssistant strives to provide a system for storing and retrieving data from DOM elements in a safe and reliable manner via element storage. It can be extremely useful for plugin developers, and is now also used internally by DOMAssistant Events module.</p>
<p>To store data, simple write:</p>
<pre>$$('elem').store('foo', 'bar');
$$('child').store( { 'name': 'Tom', 'age': 6, 'sex': 'M' } );</pre>
<p>And to retrieve them:</p>
<pre>var foo = $$('elem').retrieve('foo');   //bar
var age = $$('child').retrieve('age');  //6</pre>
<p>Removing data is as easy:</p>
<pre>$$('elem').unstore('foo');
$$('child').unstore();   //Removes all data</pre>
<p>As a bonus, calling retrieve on an element without a parameter returns its unique ID.</p>
<h2>Javascript 1.6 array extras</h2>
<p>The DOM element collection returned by the dollar function $ is essentially an array, so naturally we should be able to use the snazzy <a href="http://robertnyman.com/2009/04/27/introduction-test-cases-and-web-browser-compatibility-tables-for-javascript-16-javascript-17-javascript-18/">Javascript 1.6 array extras</a> on them. Well, except one thing: not all browsers are created equal. DOMAssistant attempts to fill this gap by enabling indexOf(), map(), filter(), every() and some() on all supported browsers. The existing each() method also receives a boost and is &#8216;breakable&#8217; by returning false from the callback function.</p>
<pre>$('#navigation a').each( function(elem, idx) {
    alert('This is item ' + idx);
    if (idx === 5) return false;    // Stop counting after 5
});</pre>
<pre>var elm = $$('content');
var idx = $("div").indexOf(elm);</pre>
<pre>// Creates an array of element ID
var arrayID = $('div').map( function() {
    return this.id;
});</pre>
<pre>var oddItems = $('div').filter( function(elem, idx) {
    return (idx % 2 === 1);
});</pre>
<pre>var allHaveChildren = $('div').every( function() {
    return (this.childNodes.length &gt; 0);
});</pre>
<pre>var someHaveChildren = $('div').some( function() {
    return (this.childNodes.length &gt; 0);
});</pre>
<h2>Unit test suite</h2>
<p>DOMAssistant 2.8 is systematically tested using a comprehensive <a href="http://www.domassistant.com/sugar">test suite</a> built around the <a href="http://sugartest.scriptia.net/">SugarTest</a> framework. This new testing process ensures minimal regressions during code change. As of this writing, the unit test case count stands at 869, and they are passed by all supported browsers.</p>
<h2>So what are the supported browsers anyway?</h2>
<p>Tests are run against:</p>
<p>Internet Explorer: 5.5, 6.0, 7.0, 8.0<br />
Mozilla Firefox: 1.0, 1.5, 2.0, 3.0, 3.5*<br />
Google Chrome: 1.0, 2.0, 3.0*<br />
Opera: 9.0, 9.2, 9.5, 9.6, 10.0*<br />
Apple Safari: 3.1, 3.2, 4.0</p>
<p>With that, a total of 20 past, present and upcoming mainstream browsers pass the DOMAssistant 2.8 test suite with a 869/869 score. Or 100%.</p>
<p>Unfortunately, support for IE5.0 has now been dropped.</p>
<h2>Breaking change</h2>
<p>While DOMAssistant 2.8 intends to be fully backward-compatible with previous versions, there is one potential breaking change that you might want to take note of. The Events module now passes a &#8216;synthetic&#8217; event object to the callback functions, instead of the native object. This has the benefit of neutralizing differences between W3C-compliant event objects and IE&#8217;s, and allow overwriting of read-only attributes. The second point is in fact necessary in the implementation of event delegation.</p>
<p>However, not all native properties have been ported over to the synthetic event object. Current supported properties are type, bubbles, cancelable, target, currentTarget, button, keyCode, charCode, altKey, ctrlKey, shiftKey, clientX, clientY and timeStamp, and methods preventDefault() and stopPropagation(). If your code only uses the above properties and methods, it should be safe. Otherwise, the native object is still present and can be retrieved:</p>
<pre>$('a').addEvent('click', function(e) {
    e.preventDefault();
    var native = e.event;
    alert(native.returnValue);
});</pre>
<h2>Download Beta 1 now!</h2>
<p>Help make DOMAssistant 2.8 a solid release by taking the public beta for a test drive. Feedback welcomed!</p>
<ul>
<li><a href="http://www.domassistant.com/beta/2.8b1/DOMAssistantComplete.js">DOMAssistant 2.8 beta 1, Complete</a> (47KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8b1/DOMAssistantCompressed.js">DOMAssistant 2.8 beta 1, Compressed</a> (27KB)</li>
<li><a href="http://www.domassistant.com/beta/2.8b1/Release-notes.txt">Beta 1 release notes</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2009/06/12/domassistant-28-beta-1-released/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>DOMAssistant 2.7.4 out!</title>
		<link>http://www.domassistant.com/blog/2008/10/31/domassistant-273-out/</link>
		<comments>http://www.domassistant.com/blog/2008/10/31/domassistant-273-out/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 21:07:59 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2008/10/31/domassistant-273-out/</guid>
		<description><![CDATA[Update:  Version 2.7.4 has been released to address a regression bug that affects the addClass(), removeClass() and replaceContent() methods. Please update to this version. Sorry if it has caused any inconveniences! We are pleased to announce that your favorite Javascript library has just received an update! Yes, it&#8217;s a zero-point-zero-one version increment, but make no [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong>:  Version 2.7.4 has been released to address a regression bug that affects the addClass(), removeClass() and replaceContent() methods. Please <a href="http://code.google.com/p/domassistant/downloads/list">update</a> to this version. Sorry if it has caused any inconveniences!</p>
<p>We are pleased to announce that your favorite Javascript library has just received an update! Yes, it&#8217;s a zero-point-zero-one version increment, but make no mistake about it &#8211; DOMAssistant 2.7.3, while continuing its promise of being extremely light and fast, sees the addition of some much requested features and fixes, including:</p>
<p><span id="more-25"></span></p>
<h3>Support for &#8220;opacity&#8221; with <a href="http://www.domassistant.com/documentation/DOMAssistantCSS-module.php#getStyle">getStyle</a>() and <a href="http://www.domassistant.com/documentation/DOMAssistantCSS-module.php#setStyle">setStyle</a>()</h3>
<p>You can now get or set the opacity of an element with the following syntax. It works across browsers, of course.</p>
<pre>elm.setStyle("opacity", 0.5);
elm.setStyle({ color: "blue", opacity: 0.3 });
var opacity = elm.getStyle("opacity");    // 0.3</pre>
<h3>JSON response native parsing with eval fallback</h3>
<p>If the responseType is set to &#8220;json&#8221; in an <a href="http://www.domassistant.com/documentation/DOMAssistantAJAX-module.php#ajax">Ajax call</a>, DOMAssistant will attempt to evaluate the response with the native JSON.parse function whenever possible.</p>
<pre>elm.ajax({
    url: "getDateTime.php",
    responseType: "json",
    callback: function (obj) {
        var date = obj.date;
        var time = obj.time;
    }
});</pre>
<h3>Support for timeout and exception handling in Ajax</h3>
<p>Two optional parameters, &#8220;timeout&#8221; and &#8220;exception&#8221;, have been added to Ajax setup <a href="http://www.domassistant.com/documentation/DOMAssistantAJAX-module.php#ajax">config</a>. As their names suggest, they allow you to define the timeout interval for an Ajax request, and an exception handler to deal with the situation whenever error arises. Timeouts are considered a type of error as well.</p>
<pre>elm.ajax({
    url: "getDateTime.php",
    responseType: "json",
    callback: function (obj) {
        var date = obj.date;
        var time = obj.time;
    },
    timeout: 5000,    //in ms
    exception: function (err) {
        alert("Error: " + (err.message || err.description));
    }
});</pre>
<h3>Enhanced <a href="http://www.domassistant.com/documentation/DOMAssistantEvents-module.php#removeEvent">removeEvent</a>() capable of removing all handlers binded to an event</h3>
<p>Previously you must specify the event and the function reference if you need to remove an event handler. This means anonymous functions and inline event handlers could never be removed without some brute forces. This issue has now been addressed with the improved API that allows you to omit the function reference in a removeEvent() call.</p>
<pre>elm.removeEvent("click", doSomething);   // Removes the doSomething click event handler
elm.removeEvent("click");                // Removes all click event handlers</pre>
<h3>Exceptional performance</h3>
<p>DOMAssistant 2.7.3 now leads other major libraries by an <a href="http://www.domassistant.com/slickspeed/" title="Slickspeed">even larger margin</a> in selector&#8217;s performance. It also stacks up <a href="http://www.domassistant.com/slickspeed-new/" title="Slickspeed-new">pretty well</a> against <a href="http://ajaxian.com/archives/sizzle-john-resig-has-a-new-selector-engine" title="Sizzle">up</a> and <a href="http://ajaxian.com/archives/peppy-css3-selector-engine" title="Peppy">coming</a> libraries. Performance enhancement has been made in the Ajax department too, where requests are now pooled and reused. Special thanks to <strong>David DeCarmine</strong> on this one!</p>
<h3>Other fixes</h3>
<p>[Chg] Inline events now gets triggered with <a href="http://www.domassistant.com/documentation/DOMAssistantEvents-module.php#triggerEvent">triggerEvent</a>()<br />
[Fix] Multiple selector accuracy fixes in edge cases<br />
[Fix] <a href="http://www.domassistant.com/documentation/DOMAssistantAJAX-module.php#getStatus">getStatus</a>() and <a href="http://www.domassistant.com/documentation/DOMAssistantAJAX-module.php#getStatusText">getStatusText</a>() now works from within the Ajax callback function<br />
[Fix] <a href="http://www.domassistant.com/documentation/DOMAssistantCSS-module.php#getStyle">getStyle</a>() for &#8220;float&#8221;, &#8220;width&#8221; and &#8220;height&#8221; now return correct values in IE<br />
[Fix] Event handle threw error under rare circumstances in IE</p>
<h3>Download</h3>
<p>DOMAssistant 2.7.3 is drop-in replacement for the last version and is <a href="http://code.google.com/p/domassistant/downloads/list" title="DOMAssistant Downloads">available for download</a> now. We hope you enjoy this release. <a href="http://groups.google.com/group/domassistant" title="Discussion group">Feedback</a> welcomed!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2008/10/31/domassistant-273-out/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tabify your navigations with DOMAssistant.Tabs</title>
		<link>http://www.domassistant.com/blog/2008/10/03/tabify-your-navigations-with-domassistanttabs/</link>
		<comments>http://www.domassistant.com/blog/2008/10/03/tabify-your-navigations-with-domassistanttabs/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 16:51:13 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2008/10/03/tabify-your-navigations-with-domassistanttabs/</guid>
		<description><![CDATA[Four months after BoxIt Rounded Corners, Samuel Desnoës has released yet another plugin for DOMAssistant. As its name DOMAssistant.Tabs suggests, it allows you to create a tab-based navigation system on your webpage with a simple call: $$(&#8216;myContainer&#8217;).doTabs(); Released under MIT license, the demo and download link are available on the official website.]]></description>
			<content:encoded><![CDATA[<p>Four months after <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/download/">BoxIt Rounded Corners</a>, <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/download/">Samuel Desnoës</a> has released yet another plugin for DOMAssistant.</p>
<p>As its name <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/download/">DOMAssistant.Tabs</a> suggests, it allows you to create a tab-based navigation system on your webpage with a simple call:</p>
<p>$$(&#8216;myContainer&#8217;).doTabs();</p>
<p>Released under MIT license, the <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/testing.html">demo</a> and <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/download/">download link</a> are available on the official <a href="http://www.ifacta.fr/labo/scripts/domassistant.tabs/en/">website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2008/10/03/tabify-your-navigations-with-domassistanttabs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PURE Javascript templating engine now works with DOMAssistant</title>
		<link>http://www.domassistant.com/blog/2008/10/02/pure-javascript-templating-engine-now-works-with-domassistant/</link>
		<comments>http://www.domassistant.com/blog/2008/10/02/pure-javascript-templating-engine-now-works-with-domassistant/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 15:19:13 +0000</pubDate>
		<dc:creator>chenghong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.domassistant.com/blog/2008/10/02/pure-javascript-templating-engine-now-works-with-domassistant/</guid>
		<description><![CDATA[PURE is a cross-browser, cross-library templating engine that runs on the client-side to render backend JSON and XML data into HTML. It is extremely lightweight, fast, and reduces complex data handling logic into a single line. Today, the PURE team announces official support for DOMAssistant. We are proud and at the same time happy to see [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://beebole.com/pure/">PURE</a> is a cross-browser, cross-library templating engine that runs on the client-side to render backend JSON and XML data into HTML. It is extremely lightweight, fast, and reduces complex data handling logic into a <a href="http://beebole.com/pure/getting_started.html">single line</a>.</p>
<p>Today, the PURE team <a href="http://beebole.com/blog/2008/10/02/our-javascript-template-pure-becomes-cross-library/">announces</a> official support for DOMAssistant. We are proud and at the same time happy to see DOMAssistant picking up momentum on real world usage.</p>
<p> Do check out the PURE-DOMAssistant <a href="http://www.domassistant.com/demos/pure/docs/allExamples.html">demo</a> and give this nifty little library <a href="http://github.com/pure/pure/downloads/master">a try</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.domassistant.com/blog/2008/10/02/pure-javascript-templating-engine-now-works-with-domassistant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
