<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Joel Varty : jQuery</title><link>http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx</link><description>Tags: jQuery</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>The jTemplates plugin for jQuery – Keep inline templates from being misinterpreted</title><link>http://weblogs.asp.net/joelvarty/archive/2009/12/04/the-jtemplates-plugin-for-jquery-keep-inline-templates-from-being-misinterpreted.aspx</link><pubDate>Fri, 04 Dec 2009 13:37:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7270550</guid><dc:creator>joelvarty</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/rsscomments.aspx?PostID=7270550</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/commentapi.aspx?PostID=7270550</wfw:comment><comments>http://weblogs.asp.net/joelvarty/archive/2009/12/04/the-jtemplates-plugin-for-jquery-keep-inline-templates-from-being-misinterpreted.aspx#comments</comments><description>&lt;p&gt;I love the jTemplates plugin for jQuery.&amp;#160; It works great and I’ve had very little trouble working with it when I put my templates in separate files.&amp;#160; This ensures that the browser does re-interpret the html for the template and re-arrange the elements.&amp;#160; This happens mostly with tables in IE and Webkit browsers where you want to repeat the rows of the table.&amp;#160; You’ll see what I mean in a moment.&lt;/p&gt;  &lt;p&gt;Take a template like the following:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;    
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;thead&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Date&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Title&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Count&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;th&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;thead&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        {#foreach $T as o}
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;                                
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{$T.o.CreatedOn}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&amp;gt;&lt;/span&gt;{$T.o.Title}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{$T.o.Count}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        {#/for}
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;    
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;This works great if I put the template in it’s own html or text file, but not if I embed it in a &amp;lt;div&amp;gt;.&amp;#160; &lt;/p&gt;

&lt;p&gt;Why?&amp;#160; Well, the {# foreach} and the {#/for} lines in the template are NOT interpreted as being part of the &amp;lt;table&amp;gt; element, and so that text ends up being placed in the DOM as text elements either before or after the table.&lt;/p&gt;

&lt;p&gt;The way around this is simple – just place your template in a &amp;lt;textarea&amp;gt; instead of a div.&amp;#160; Then you can use $(“#elementID”).val() to grab the literal text (which isn’t interpreted into the DOM as anything but text), and all should be good.&lt;/p&gt;

&lt;p&gt;More later - joel&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7270550" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/joelvarty/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jTemplates/default.aspx">jTemplates</category></item><item><title>How JSONP works</title><link>http://weblogs.asp.net/joelvarty/archive/2009/09/08/how-jsonp-works.aspx</link><pubDate>Tue, 08 Sep 2009 17:00:34 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7196636</guid><dc:creator>joelvarty</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/rsscomments.aspx?PostID=7196636</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/commentapi.aspx?PostID=7196636</wfw:comment><comments>http://weblogs.asp.net/joelvarty/archive/2009/09/08/how-jsonp-works.aspx#comments</comments><description>&lt;p&gt;There are a plethora of explanations for JSONP (JSON with Padding, I think it stands for) out there – just search for “how JSONP works” and you’ll get a ton of descriptions.&amp;#160; JSONP is provided as an alternative to normal JSON by jQuery on the client side to enable the invocation of services outside of the current domain.&lt;/p&gt;  &lt;p&gt;Some of them are incorrect in explaining that this technology uses a server-server proxy to call out to another server outside of the current domain.&lt;/p&gt;  &lt;p&gt;This is NOT a server-server technology, but rather more like the way a lot of Ad servers by injection javascript into the page using document.write() with a script tag.&lt;/p&gt;  &lt;p&gt;The url for the script tag has a querystring parameter which become that javascript function that wraps up the JSON return value of the web method.&amp;#160; Essentially, a document.write() call creates a script tag on the page which goes to whatever server you want to, and then returns a javascript function object which will get invoked when the script’s response is evaluated by the browser.&amp;#160; This means that the server code has to be tweaked to wrap the JSON return in that function call.&lt;/p&gt;  &lt;p&gt;One thing you will not get from JSONP is notification of network errors or anything that responds nicely to badly formed responses, so you have to accept that as a tradeoff with the ability to invoke services on other domains.&lt;/p&gt;  &lt;p&gt;This is a very high level explanation of JSON, but I hope it gets you started in right direction.&lt;/p&gt;  &lt;p&gt;More later - joel&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7196636" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/joelvarty/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>Load jQuery Dynamically</title><link>http://weblogs.asp.net/joelvarty/archive/2009/05/07/load-jquery-dynamically.aspx</link><pubDate>Thu, 07 May 2009 20:05:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7076251</guid><dc:creator>joelvarty</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/rsscomments.aspx?PostID=7076251</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/commentapi.aspx?PostID=7076251</wfw:comment><comments>http://weblogs.asp.net/joelvarty/archive/2009/05/07/load-jquery-dynamically.aspx#comments</comments><description>&lt;p&gt;Sometimes you have to load jQuery, but you don’t know if it has already been referenced somewhere else in the website.&amp;#160; &lt;/p&gt;  &lt;p&gt;This tends to happen if you have a custom web control, delivered in an assembly, that relies on jQuery.&lt;/p&gt;  &lt;p&gt;This code has been ripped out of my application, and may have a typo or three, but it gives you the general idea.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; jQueryScriptOutputted = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
&lt;span class="kwrd"&gt;function&lt;/span&gt; initJQuery() {
    
    &lt;span class="rem"&gt;//if the jQuery object isn't available&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(jQuery) == &lt;span class="str"&gt;'undefined'&lt;/span&gt;) {
    
    
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (! jQueryScriptOutputted) {
            &lt;span class="rem"&gt;//only output the script once..&lt;/span&gt;
            jQueryScriptOutputted = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
            
            &lt;span class="rem"&gt;//output the script (load it from google api)&lt;/span&gt;
            document.write(&lt;span class="str"&gt;&amp;quot;&amp;lt;scr&amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;ipt type=\&amp;quot;text/javascript\&amp;quot; src=\&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\&amp;quot;&amp;gt;&amp;lt;/scr&amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;ipt&amp;gt;&amp;quot;&lt;/span&gt;);
        }
        setTimeout(&lt;span class="str"&gt;&amp;quot;initJQuery()&amp;quot;&lt;/span&gt;, 50);
    } &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        
        $(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {  
            &lt;span class="rem"&gt;//do anything that needs to be done on document.ready&lt;/span&gt;
        });
    }
            
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;initJQuery();&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;More later - joel&lt;/p&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7076251" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/joelvarty/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>JQuery - get a handle on a server element in javascript without using &lt;%= elem.ClientID %&gt;</title><link>http://weblogs.asp.net/joelvarty/archive/2009/02/09/jquery-get-a-handle-on-a-server-element-in-javascript-without-using-lt-elem-clientid-gt.aspx</link><pubDate>Mon, 09 Feb 2009 19:48:52 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6895981</guid><dc:creator>joelvarty</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/rsscomments.aspx?PostID=6895981</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/commentapi.aspx?PostID=6895981</wfw:comment><comments>http://weblogs.asp.net/joelvarty/archive/2009/02/09/jquery-get-a-handle-on-a-server-element-in-javascript-without-using-lt-elem-clientid-gt.aspx#comments</comments><description>&lt;p&gt;One of the things I see&amp;#160; a lot of is code that looks like this:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:CheckBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;chkEnable&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;My Checkbox&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;var&lt;/span&gt; chkEnable = $get(&lt;span class="str"&gt;&amp;quot;&amp;lt;%= chkEnable.ClientID %&amp;gt;&amp;quot;&lt;/span&gt;);
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;You can see that the ClientID is being used, which will grab the exact element that .net generates, and will look like &lt;strong&gt;ctl00_plcMain_chkEnable&lt;/strong&gt; or something like that.&lt;/p&gt;

&lt;p&gt;jQuery can select an element by looking at what its attribute ends with, as explained &lt;a href="http://docs.jquery.com/Selectors" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So we get this instead:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:CheckBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;chkEnable&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;My Checkbox&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    $(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {
        &lt;span class="kwrd"&gt;var&lt;/span&gt; &lt;span class="kwrd"&gt;checked&lt;/span&gt; = $(&lt;span class="str"&gt;&amp;quot;input[id$=chkEnable]&amp;quot;&lt;/span&gt;).attr(&lt;span class="str"&gt;&amp;quot;checked&amp;quot;&lt;/span&gt;);
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;checked&lt;/span&gt;) {
            alert(&lt;span class="str"&gt;&amp;quot;It is checked.  These are the droids you are looking for.&amp;quot;&lt;/span&gt;);
        }
    });
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The code in the selector gets all of the input elements that have an id attribute that ends with chkEnable.&amp;#160; What really rocks (or sucks, depending on your point of view) is that if you have a repeater full of &amp;lt;asp:checkbox&amp;gt; controls, this will select all of them so you can process them.&lt;/p&gt;

&lt;p&gt;More later - joel&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6895981" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/joelvarty/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>VS Docs for jQuery 1.3.1</title><link>http://weblogs.asp.net/joelvarty/archive/2009/02/09/vs-docs-for-jquery-1-3-1.aspx</link><pubDate>Mon, 09 Feb 2009 16:34:55 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6895803</guid><dc:creator>joelvarty</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/rsscomments.aspx?PostID=6895803</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/joelvarty/commentapi.aspx?PostID=6895803</wfw:comment><comments>http://weblogs.asp.net/joelvarty/archive/2009/02/09/vs-docs-for-jquery-1-3-1.aspx#comments</comments><description>&lt;p&gt;I am using jQuery for everything these days - it really is an awesome add-on to any web application, and what even better is that you can get intellisense on it for the latest version.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/bleroy/jQueryJsDoc131_13C6BA00.png" /&gt; &lt;/p&gt;  &lt;p&gt;Makes it easy to get stuff like this showing up when you are kicking out js code...&lt;/p&gt;  &lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/bleroy/jQueryIntelliSenseScriptTag_1BC6382A.png" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Via Bertand Le Roy's blog - &lt;a title="http://weblogs.asp.net/bleroy/archive/2009/02/06/vsdoc-for-jquery-1-3-1-now-available.aspx" href="http://weblogs.asp.net/bleroy/archive/2009/02/06/vsdoc-for-jquery-1-3-1-now-available.aspx"&gt;http://weblogs.asp.net/bleroy/archive/2009/02/06/vsdoc-for-jquery-1-3-1-now-available.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now if only I could find the time to get doc comments in my own js files...&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Rock on!&lt;/p&gt;  &lt;p&gt;joel&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6895803" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/joelvarty/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/joelvarty/archive/tags/jQuery/default.aspx">jQuery</category></item></channel></rss>