<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Understanding jQuery UI widgets: A tutorial</title>
	<atom:link href="http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://bililite.com/blog</link>
	<description>Thoughts on web design and programming from a very occasional volunteer webmaster</description>
	<lastBuildDate>Sun, 28 Feb 2010 22:17:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Виджеты jQuery UI: учебное пособие</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1299</link>
		<dc:creator>Виджеты jQuery UI: учебное пособие</dc:creator>
		<pubDate>Tue, 23 Feb 2010 11:15:19 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1299</guid>
		<description>[...] Нестрогий перевод статьи Understanding jQuery UI widgets: A tutorial. [...]</description>
		<content:encoded><![CDATA[<p>[...] Нестрогий перевод статьи Understanding jQuery UI widgets: A tutorial. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rob</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1295</link>
		<dc:creator>rob</dc:creator>
		<pubDate>Sun, 21 Feb 2010 20:41:43 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1295</guid>
		<description>great, thanks..that finally somebody understands the f*kn pain of the plugindevelopment!

br
rob</description>
		<content:encoded><![CDATA[<p>great, thanks..that finally somebody understands the f*kn pain of the plugindevelopment!</p>
<p>br<br />
rob</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1268</link>
		<dc:creator>Danny</dc:creator>
		<pubDate>Sun, 14 Feb 2010 03:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1268</guid>
		<description>@Pipeman:
Technically, jQuery UI is a project independent from jQuery itself, so you can write plugins without UI, but I agree. Saving state is so often useful that I almost always start my
plugins from a UI widget. The problem is that if you aren&#039;t using the whole UI, you are including a huge amount of unnecessary stuff, so you may want to include just the widget code (which has been refactored out in release candidate 1.8 in &lt;a href=&quot;http://jquery-ui.googlecode.com/svn/trunk/ui/jquery.ui.widget.js&quot; rel=&quot;nofollow&quot;&gt;jquery.ui.widget.js&lt;/a&gt;.
--Danny</description>
		<content:encoded><![CDATA[<p>@Pipeman:<br />
Technically, jQuery UI is a project independent from jQuery itself, so you can write plugins without UI, but I agree. Saving state is so often useful that I almost always start my<br />
plugins from a UI widget. The problem is that if you aren&#8217;t using the whole UI, you are including a huge amount of unnecessary stuff, so you may want to include just the widget code (which has been refactored out in release candidate 1.8 in <a href="http://jquery-ui.googlecode.com/svn/trunk/ui/jquery.ui.widget.js" rel="nofollow">jquery.ui.widget.js</a>.<br />
&#8211;Danny</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1267</link>
		<dc:creator>Danny</dc:creator>
		<pubDate>Sun, 14 Feb 2010 03:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1267</guid>
		<description>@Kragen Javier Sitaker:
Yes, &lt;code&gt;this._foo&lt;/code&gt; works for private data. &lt;code&gt;this._getData(&#039;foo&#039;)&lt;/code&gt; actually uses &lt;code&gt;this.options.foo&lt;/code&gt; so it can be used for both private data and public options (with &lt;code&gt;$(selector).widget(&#039;option&#039;, &#039;foo&#039;)&lt;/code&gt;). I tried to keep the tutorial as limited as possible; for all the details I would look at the source code (&lt;a href=&quot;http://jquery-ui.googlecode.com/svn/tags/1.7.2/ui/ui.core.js&quot; rel=&quot;nofollow&quot;&gt;jquery-ui.googlecode.com/svn/tags/1.7.2/ui/ui.core.js&lt;/a&gt; for the most
recent release version); it&#039;s not that complicated.
Be aware, though, that many things are changing for &lt;a href=&quot;http://jquery-ui.googlecode.com/svn/trunk/ui/jquery.ui.widget.js&quot; rel=&quot;nofollow&quot;&gt;version 1.8&lt;/a&gt;. I&#039;ll try to update the tutorial when it is officially released (meaning when it&#039;s on the Google Ajax API server).
--Danny</description>
		<content:encoded><![CDATA[<p>@Kragen Javier Sitaker:<br />
Yes, <code>this._foo</code> works for private data. <code>this._getData('foo')</code> actually uses <code>this.options.foo</code> so it can be used for both private data and public options (with <code>$(selector).widget('option', 'foo')</code>). I tried to keep the tutorial as limited as possible; for all the details I would look at the source code (<a href="http://jquery-ui.googlecode.com/svn/tags/1.7.2/ui/ui.core.js" rel="nofollow">jquery-ui.googlecode.com/svn/tags/1.7.2/ui/ui.core.js</a> for the most<br />
recent release version); it&#8217;s not that complicated.<br />
Be aware, though, that many things are changing for <a href="http://jquery-ui.googlecode.com/svn/trunk/ui/jquery.ui.widget.js" rel="nofollow">version 1.8</a>. I&#8217;ll try to update the tutorial when it is officially released (meaning when it&#8217;s on the Google Ajax API server).<br />
&#8211;Danny</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pipeman</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1264</link>
		<dc:creator>Pipeman</dc:creator>
		<pubDate>Sat, 13 Feb 2010 11:33:05 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1264</guid>
		<description>Amazing, I can&#039;t believe they don&#039;t mention this widget structure in the &#039;authoring a plugin&#039; docs - this is essential for plugins with states - many thanks &amp; a link to this should definitely go here: http://docs.jquery.com/Plugins/Authoring</description>
		<content:encoded><![CDATA[<p>Amazing, I can&#8217;t believe they don&#8217;t mention this widget structure in the &#8216;authoring a plugin&#8217; docs &#8211; this is essential for plugins with states &#8211; many thanks &amp; a link to this should definitely go here: <a href="http://docs.jquery.com/Plugins/Authoring" rel="nofollow">http://docs.jquery.com/Plugins/Authoring</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kragen Javier Sitaker</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1262</link>
		<dc:creator>Kragen Javier Sitaker</dc:creator>
		<pubDate>Thu, 11 Feb 2010 15:31:06 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1262</guid>
		<description>Thanks for the excellent tutorial! I just wrote my first jQuery UI widget using it (nothing useful to anyone else, at the moment...)

At some point I got confused by the text, &quot;$.widget defines two more functions that let us store and retrieve data for each instance individually: _setData and _getData,&quot; and ended up using _setData and _getData to set and get some widget-private data: this._setData(&#039;foo&#039;, something). Then I realized that I could just use this._foo = something, and my life got easier.

It may not be worthwhile incorporating this into the tutorial — if you incorporate a clarification for everything anyone ever gets confused by, you will end up with something like the unusably-verbose Perl documentation — but I submit it for your consideration.</description>
		<content:encoded><![CDATA[<p>Thanks for the excellent tutorial! I just wrote my first jQuery UI widget using it (nothing useful to anyone else, at the moment&#8230;)</p>
<p>At some point I got confused by the text, &#8220;$.widget defines two more functions that let us store and retrieve data for each instance individually: _setData and _getData,&#8221; and ended up using _setData and _getData to set and get some widget-private data: this._setData(&#8216;foo&#8217;, something). Then I realized that I could just use this._foo = something, and my life got easier.</p>
<p>It may not be worthwhile incorporating this into the tutorial — if you incorporate a clarification for everything anyone ever gets confused by, you will end up with something like the unusably-verbose Perl documentation — but I submit it for your consideration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 25 Tutorials and Resources for Learning jQuery UI - Speckyboy Design Magazine</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1117</link>
		<dc:creator>25 Tutorials and Resources for Learning jQuery UI - Speckyboy Design Magazine</dc:creator>
		<pubDate>Wed, 20 Jan 2010 09:31:34 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1117</guid>
		<description>[...] Understanding jQuery UI widgets &#8211; A tutorial [...]</description>
		<content:encoded><![CDATA[<p>[...] Understanding jQuery UI widgets &#8211; A tutorial [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1102</link>
		<dc:creator>Danny</dc:creator>
		<pubDate>Fri, 08 Jan 2010 16:56:17 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1102</guid>
		<description>@Lindsay:
The only other documentation on building widgets is the &lt;a href=&quot;http://jqueryui.com/docs/Developer_Guide&quot; rel=&quot;nofollow&quot;&gt;official one&lt;/a&gt;, which isn&#039;t very helpful. That&#039;s why I had to write this, as a tutorial for myself! There is no keypress mixin code; you would have to write your own with something like
&lt;code class=&quot;language-javascript&quot;&gt;this.element.bind(&quot;keypress.&quot;+this.widgetName, function(){...})&lt;/code&gt;. The &lt;code&gt;widgetName&lt;/code&gt; is there to
allow you to unbind your handlers without affecting others. &lt;code&gt;$.ui.keyCode&lt;/code&gt; exposes some useful names for key codes; use the &lt;a href=&quot;http://dev.jqueryui.com/browser/trunk/ui/jquery.ui.core.js&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt; to see them.

I have some keypress-simulating code in my &lt;a href=&quot;/blog/2008/08/20/the-fnsendkeys-plugin/&quot; rel=&quot;nofollow&quot;&gt;sendkeys plugin&lt;/a&gt; that may be helpful.

Hope this helps!

--Danny</description>
		<content:encoded><![CDATA[<p>@Lindsay:<br />
The only other documentation on building widgets is the <a href="http://jqueryui.com/docs/Developer_Guide" rel="nofollow">official one</a>, which isn&#8217;t very helpful. That&#8217;s why I had to write this, as a tutorial for myself! There is no keypress mixin code; you would have to write your own with something like<br />
<code class="language-javascript">this.element.bind("keypress."+this.widgetName, function(){...})</code>. The <code>widgetName</code> is there to<br />
allow you to unbind your handlers without affecting others. <code>$.ui.keyCode</code> exposes some useful names for key codes; use the <a href="http://dev.jqueryui.com/browser/trunk/ui/jquery.ui.core.js" rel="nofollow">Source</a> to see them.</p>
<p>I have some keypress-simulating code in my <a href="/blog/2008/08/20/the-fnsendkeys-plugin/" rel="nofollow">sendkeys plugin</a> that may be helpful.</p>
<p>Hope this helps!</p>
<p>&#8211;Danny</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lindsay</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1101</link>
		<dc:creator>Lindsay</dc:creator>
		<pubDate>Thu, 07 Jan 2010 19:36:19 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1101</guid>
		<description>Hi Danny.  First I wanted to say a huge thank you for this tutorial.  It is one of the only ones I have found that goes into detail about how to use the jQuery widget framework and has been extremely helpful to me.

You mention the ui.core &quot;mixin&quot; for the mouse.  Do you know if there is also one for keypress events?  And, is there any documentation out there that details those extensions and any others that are available via ui.core?  I have had a heck of a time finding documentation on the jQuery ui that doesn&#039;t involve the widgets they have prebuilt.  Any help is much appreciated!

Thanks again for the tutorial!</description>
		<content:encoded><![CDATA[<p>Hi Danny.  First I wanted to say a huge thank you for this tutorial.  It is one of the only ones I have found that goes into detail about how to use the jQuery widget framework and has been extremely helpful to me.</p>
<p>You mention the ui.core &#8220;mixin&#8221; for the mouse.  Do you know if there is also one for keypress events?  And, is there any documentation out there that details those extensions and any others that are available via ui.core?  I have had a heck of a time finding documentation on the jQuery ui that doesn&#8217;t involve the widgets they have prebuilt.  Any help is much appreciated!</p>
<p>Thanks again for the tutorial!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan Berry</title>
		<link>http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/comment-page-1/#comment-1100</link>
		<dc:creator>Bryan Berry</dc:creator>
		<pubDate>Tue, 05 Jan 2010 10:57:50 +0000</pubDate>
		<guid isPermaLink="false">http://bililite.com/blog/?page_id=286#comment-1100</guid>
		<description>Awesome tutorial, tks a lot.</description>
		<content:encoded><![CDATA[<p>Awesome tutorial, tks a lot.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
