<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Leeiio Chaos Made. &#187; jQuery</title>
	<atom:link href="http://leeiio.me/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://leeiio.me</link>
	<description>The site is redesigning,please be patient  :P</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:40:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Difference Between jQuery’s .bind(), .live(), and .delegate()</title>
		<link>http://leeiio.me/the-difference-between-jquerys-bind-live-and-delegate/</link>
		<comments>http://leeiio.me/the-difference-between-jquerys-bind-live-and-delegate/#comments</comments>
		<pubDate>Mon, 16 May 2011 14:37:00 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[bind()]]></category>
		<category><![CDATA[delegate()]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://leeiio.me/the-difference-between-jquery%e2%80%99s-bind-live-and-delegate/</guid>
		<description><![CDATA[西方不够好的朋友可以看这篇译文《jQuery的.bind()、.live()和.delegate()之间的区别》。这篇文章详细的比较了bind()，live()以及delegate()的区别。以及作者为什么推荐用delegate()。]]></description>
			<content:encoded><![CDATA[<p>西方不够好的朋友可以看这篇译文《<a href="http://article.yeeyan.org/view/213582/179910" title="jQuery的.bind()、.live()和.delegate()之间的区别" target="_blank">jQuery的.bind()、.live()和.delegate()之间的区别</a>》。这篇文章详细的比较了bind()，live()以及delegate()的区别。以及作者为什么推荐用delegate()。</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/the-difference-between-jquerys-bind-live-and-delegate/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 发布，一些更新和改进，性能大幅度提升！</title>
		<link>http://leeiio.me/jquery-1_4-released/</link>
		<comments>http://leeiio.me/jquery-1_4-released/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 04:02:38 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1797</guid>
		<description><![CDATA[jQuery 1.4 发布也有好几天了，api 有所增加也有所更新，总体来说，性能也有大幅度的提升。jQuery 是我接触的第一个 javascript 类库，快速上手是他的特色之一。另外更重要的一点或者说之所以容易上手并且让用户产生渐进的学习兴趣是因为他的API 设计。如射雕文中所说，“从纯功能上说，jQuery 并没有特别出色的地方。但从可记忆性和灵活性上讲，我觉得 jQuery 的设计都更人性化。jQuery 的 API 还符合学习上的渐进式思维：先学会最简单的情况el.css(prop), 再了解到还可以有两个参数，接着发现参数可以是 map, 更进一步发现 val 还可以是一个函数。func 参数甚至能带给学习者一种惊喜：居然还可以这样用！jQuery 把一种渐进和愉悦带进了学习和使用的过程中，实在漂亮！” 2010年1月14号, 恰逢jQuery四周年纪念日, jQuery的团队早早便开始了1.4版发布的准备工作, 并以每天一则公告的方式进行庆祝, 活动将持续14天。发布的首日, jQuery的团队首先列出了1.4版中的重大改进。这篇文档是这几天以来内容比较充实的一篇文档。所以我转载了coolnalu的翻译, 方便大家了解都有哪些更新和改进以及性能的提升。 翻译正文如下： 为了庆祝jQuery的四周岁生日, jQuery的团队荣幸的发布了jQuery Javascript库的最新主要版本! 这个版本包含了大量的编程，测试，和记录文档的工作，我们为此感到很骄傲。 我要以个人的名义感谢 Brandon Aaron, Ben Alman, Louis-Rémi Babe, &#8230; <a href="http://leeiio.me/jquery-1_4-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_jquery1_4.png" alt="jQuery 1.4 released on january 14th 2010" /><br />
jQuery 1.4 发布也有好几天了，api 有所增加也有所更新，总体来说，性能也有大幅度的提升。jQuery 是我接触的第一个 javascript 类库，快速上手是他的特色之一。另外更重要的一点或者说之所以容易上手并且让用户产生渐进的学习兴趣是因为他的API 设计。如<a href="http://lifesinger.org/blog/2010/01/the-beauty-of-jquery-api/" rel="nofollow">射雕</a>文中所说，“从纯功能上说，jQuery 并没有特别出色的地方。但从可记忆性和灵活性上讲，我觉得 jQuery 的设计都更人性化。jQuery 的 API 还符合学习上的渐进式思维：先学会最简单的情况el.css(prop), 再了解到还可以有两个参数，接着发现参数可以是 map, 更进一步发现 val 还可以是一个函数。func 参数甚至能带给学习者一种惊喜：居然还可以这样用！jQuery 把一种渐进和愉悦带进了学习和使用的过程中，实在漂亮！”<br />
<span id="more-1797"></span><br />
2010年1月14号, 恰逢jQuery四周年纪念日, jQuery的团队早早便开始了1.4版发布的准备工作, 并以每天一则公告的方式进行庆祝, 活动将持续14天。发布的首日, jQuery的团队首先列出了1.4版中的重大改进。这篇文档是这几天以来内容比较充实的一篇文档。所以我转载了<a href="http://www.uxd2.com/2010/01/翻译-jquery1-4官方文档/" rel="nofollow" class="broken_link">coolnalu</a>的翻译, 方便大家了解都有哪些更新和改进以及性能的提升。</p>
<p><em>翻译正文如下：</em></p>
<p>为了庆祝jQuery的四周岁生日, jQuery的团队荣幸的发布了jQuery Javascript库的最新主要版本! 这个版本包含了大量的编程，测试，和记录文档的工作，我们为此感到很骄傲。</p>
<p>我要以个人的名义感谢 Brandon Aaron, Ben Alman, Louis-Rémi Babe, Ariel Flesler, Paul Irish, Robert Katić, Yehuda Katz, Dave Methvin, Justin Meyer, Karl Swedberg, and Aaron Quint。谢谢他们在修复BUG和完成这次发布上所做的工作。</p>
<h2 class="part-title">下载(Downloading)</h2>
<p>按照惯例，我们提供了两份jQuery的拷贝，一份是最小化的(我们现在采用<a href="http://code.google.com/closure/compiler/">Google Closure</a>作为默认的压缩工具了)，一份是未压缩的(供纠错或阅读)。</p>
<ul>
<li><a href="http://code.jquery.com/jquery-1.4.min.js">jQuery压缩</a> (23kb <a href="http://www.julienlecomte.net/blog/2007/08/13/">Gzipped</a>)</li>
<li><a href="http://code.jquery.com/jquery-1.4.js">jQuery常规</a> (154kb)</li>
</ul>
<p>另外，Google也在他们的服务器上<a href="http://code.google.com/apis/ajaxlibs/documentation/index.html">放置了一份jQuery的拷贝</a>。这份拷贝会自动的最小化然后压缩 &ndash; 并且放在Google最快的缓存服务器上。</p>
<ul>
<li><a href="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js">http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js</a></li>
</ul>
<p>你可以在你的站点上直接引用上面的URL，这样就可以享受迅速加载jQuery的性能优势了。</p>
<p>就jQuery1.4来说，我们努力的减少大规模升级中的麻烦 &ndash; 通过保持所有public函数的签名。即使如此，还请通读<a href="#backwards">可能会造成问题的变更列表</a>，这样能够了解哪些变更可能会给你的应用造成问题。</p>
<h1>(功能) Features</h1>
<p>下面的内容概括了jQuery1.4里加入的变更和功能。另外所有的变更都已经在<a href="http://api.jquery.com/category/version/1.4/">jQuery 1.4 的文档</a>里记录了。</p>
<h2 class="part-title">热门方法经过了性能上的大”检修”</h2>
<p>不少比较热门的和常用的jQuery方法在1.4里被重写了。(译注:重写了方法的内部，外部调用没有大幅度改变) 我们分析源码的时候发现我们能够获得大幅的性能提升，通过把jQuery和自己比较: 查看内部函数被调用了多少次，然后努力<a href="http://ejohn.org/blog/function-call-profiling/">降低源码的复杂度</a>(译注:计算机算法中的Complexity)</p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_01-funccall.jpg"><img width="500" height="375" alt="常用jQuery方法调用频率" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_01-funccall.jpg" title="常用jQuery方法调用频率" class="alignnone size-full wp-image-74"></a><br />
<small><a href="http://www.flickr.com/photos/jeresig/4271691293/" title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr">View the cropped chart.</a></small></p>
<p>在1.4版里我们显著的降低了大部分热门jQuery方法的的复杂度。</p>
<h2 class="part-title">更易用的设置函数 (Easy Setter Functions)</h2>
<p>算来已经有一阵了，你们已经可以给<code class="code-inline"><a href="http://api.jquery.com/attr">.attr()</a></code>传递一个函数，然后这个函数的结果会被用来赋给相应的HTML属性(attribute)上。这个功能现在被移植到所有的设置函数了: <code class="code-inline"><a href="http://api.jquery.com/css">.css()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/attr">.attr()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/val">.val()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/html">.html()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/text">.text()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/append">.append()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/prepend">.prepend()</a></code>,  <code class="code-inline"><a href="http://api.jquery.com/before">.before()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/after">.after()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/replaceWith">.replaceWith()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/wrap">.wrap()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/wrapInner">.wrapInner()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/offset">.offset()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, 以及 <code class="code-inline"><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>另外, 对于下面几个方法，当前的值会被作为第2个变量传递给这个函数。<code class="code-inline"><a href="http://api.jquery.com/css">.css()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/attr">.attr()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/val">.val()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/html">.html()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/text">.text()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/append">.append()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/prepend">.prepend()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/offset">.offset()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code class="code-inline"><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, 以及 <code class="code-inline"><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>这样代码就可以这样写:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 102, 0); font-style: italic;">// 找出所有A标签里的'&amp;'字符，然后用一个span标签包围</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'a'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">html</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>i<span style="color: rgb(51, 153, 51);">,</span>html<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
  <span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> html.<span style="color: rgb(102, 0, 102);">replace</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 102); font-style: italic;">/&amp;/gi</span><span style="color: rgb(51, 153, 51);">,</span><span style="color: rgb(51, 102, 204);">'<span class="amp">&amp;</span>'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 102, 0); font-style: italic;">// 给一些链接的title属性加些信息</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'a[target]'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">attr</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"title"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>i<span style="color: rgb(51, 153, 51);">,</span>title<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
  <span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> title <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">" (新窗口打开)"</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<h2 class="part-title">Ajax</h2>
<p><strong>嵌套参数的序列化</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://github.com/jquery/jquery/commit/50d78e7658382d2a2f5149cae7a6572f78ce403f">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/67089eedf6f84acd9c16ea2a6dadadf7b13a7c84">Commit 2</a>)</p>
<p>jQuery 1.4在jQuery.param方法里加入了嵌入参数序列化的支持，借用了PHP编程里兴起的，而后又被Ruby on Rails推广开来的方式。<br />
举例来说，<br />
<code class="code-inline">{foo: ["bar", "baz"]}</code> 会被序列化为 “foo[]=bar&amp;foo[]=baz”.</p>
<p>在jQuery 1.3版里, <code class="code-inline">{foo: ["bar", "baz"]}</code> 曾被序列化为 “foo=bar&amp;foo=baz”. 但是，这样做没用办法将只含有一个元素的阵列编码。如果你需要旧的序列化方式，你可以设置传统Ajax设置来进行切换。(使用<code class="code-inline">jQuery.ajaxSettings.traditional</code>进行全局切换，或者根据情况单独切换。</p>
<p>总共有3种方式可以切换到旧的序列化方式:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 102, 0); font-style: italic;">// 全局改变序列化方式 (使用旧的)</span>
jQuery.<span style="color: rgb(102, 0, 102);">ajaxSettings</span>.<span style="color: rgb(102, 0, 102);">traditional</span> <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">true</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 102, 0); font-style: italic;">// 指定情况使用旧的序列化方式</span>
jQuery.<span style="color: rgb(102, 0, 102);">param</span><span style="color: rgb(0, 153, 0);">(</span> stuff<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">true</span> <span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 102, 0); font-style: italic;">// 针对一个单独的Ajax请求使用旧的序列化方式</span>
$.<span style="color: rgb(102, 0, 102);">ajax</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span> data<span style="color: rgb(51, 153, 51);">:</span> stuff<span style="color: rgb(51, 153, 51);">,</span> traditional<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">true</span> <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>更多信息参见: <a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/39518945047413f1185682078043e70e0c5c9091">Commit</a>, <a href="http://github.com/jquery/jquery/blob/master/src/ajax.js#L175">Code</a></p>
<p><strong>JSON和脚本类型通过”content-type”自动识别。</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax 文档</a>, <a href="http://github.com/jquery/jquery/commit/787f271052220c20787104f0eba6441aedac22ff">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/6861b5d4eb16222ed5ea623af6ce75362b55d1d4">Commit 2</a>)</p>
<p>如果一个Ajax请求的回复的媒体类型是JSON(application/json), dataType默认设为”json”(如果dataType没有被指明)。另外，如果回复的媒体类型是Javascript(application/javascript), dataType默认设为”script”(同样，如果dataType没有明确指明), 这种情况下，脚本会自动运行。</p>
<p><strong>加入了Etag的支持</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/28ab4d32247943e1ae3409b23fe69303df0bc9eb">Commit</a>)</p>
<p>默认设置下, jQuery会忽略Ajax请求的”Last-Modified”页头。这样做是为了忽略浏览器的缓存。设置ifModified:true就可以使jQuery使用可用的缓存。jQuery1.4还会发出”If-None-Match”的页头如果你设置了ifModified选项。</p>
<p><strong>严格JSON模式，本地的JSON.parse方法</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/90a87c03b4943d75c24bc5e6246630231d12d933">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/308d6cdad023da190ace2a698ee4815ed8dad9c5">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/44e6beb10304789044de2c5a58f5bb82e8321636">Commit 3</a>)</p>
<p>jQuery 1.3和以前的版本曾使用Javascript的<code class="code-inline">eval</code>对引入的JSON解析。1.4版则会使用本地的JSON解析器，前提是如果有本地的解析器可用。它也会对引入的JSON进行校验。所以在<a href="http://api.jquery.com/jQuery.getJSON">jQuery.getJSON</a>方法里，或当一个Ajax请求的dataType是”json”的时候，jQuery会拒绝不合标准的JSON(例如<code class="code-inline">{foo: "bar"}</code>)。</p>
<p><strong>序列化HTML5的元素</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://github.com/jquery/jquery/commit/b31b9bd756a1489c3b1b856ed8b624c55da9e02f">Commit</a>)</p>
<p>新的<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-type-keywords">HTML5输入方法</a> (比如’datetime’和’range’)在序列化<code class="code-inline"><a href="http://api.jquery.com/serialize">.serialize()</a></code>一个表单的时候会被包括在内。</p>
<p><strong>Ajax请求的环境</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/183f37e4b4128af7ba096ac40046768b84b6d66e">Commit</a>)</p>
<p>你可以附加一个”环境”到Ajax请求上，所有的回调函数里都会拥有同样的”环境”设置(这样可以简化你的代码，尽可能避免使用闭合,或是其他对象)。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery.<span style="color: rgb(102, 0, 102);">ajax</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
    url<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"test.html"</span><span style="color: rgb(51, 153, 51);">,</span>
    context<span style="color: rgb(51, 153, 51);">:</span> document.<span style="color: rgb(102, 0, 102);">body</span><span style="color: rgb(51, 153, 51);">,</span>
    success<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
        jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addClass</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"done"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>请求成功回调函数的第三个参数会被设为原始的XHR对象</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/c2101245c07afdb831b0c79869c7263420407b67">Commit</a>)</p>
<p>所有的Ajax请求的成功回调函数现在都会收到原始的XMLHttpRequest对象，作为第三个参数。之前这个XHR对象只能通过<code class="code-inline">$.ajax</code>一类方法的返回值来获取。</p>
<p><strong>明确设置”Content-Type”</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/25b0ba9f9612583033b902a0e40345463a3a71d0">Commit</a>)</p>
<p>在1.3版，如果没有实际数据发送，<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax</a>的contentType会被忽略。1.4版里，contentType将总是和请求一同发送。这修复了某些后台凭靠”Content-Type”页头判断回复类别所造成的问题。</p>
<p><strong>明确设置JSONP回调函数的名字</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax 文档</a>,  <a href="http://github.com/jquery/jquery/commit/fbc73d45b487dd863886c7fd3f0af1fd4dec261b">Commit</a>)</p>
<p>你可以使用<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax()</a>方法的jsonpCallback选项，通过名字来指定JSONP的回调函数。</p>
<p><strong>防止启动前跨域XHR</strong> (<a href="http://github.com/jquery/jquery/commit/a7678267d848fcef8775c8b9f4fa3e507b8cc5f4">Commit</a>)</p>
<p>跨域Ajax(针对提供支持的浏览器)将更易用，因为默认设置下，启动前XHR被阻止了。(TODO)</p>
<p><strong>jQuery.ajax()现在使用”onreadystatechange”事件替换了计时器</strong> (<a href="http://github.com/jquery/jquery/commit/fe6c86d53046b0f4d648f61c0b8e75387af65152">Commit</a>)</p>
<p>使用”onreadystatechange”替换了轮流探询，Ajax请求现在将使用更少的资源</p>
<h2 class="part-title">元素属性 (Attributes)</h2>
<p><strong><code class="code-inline">.css()</code>和<code class="code-inline">.attr()</code> 的性能被优化了。</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_02-perform-cssatrr.jpg"><img width="500" height="375" alt=".css().attr()的性能提高" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_02-perform-cssatrr.jpg" title=".css().attr()的性能提高" class="alignnone size-full wp-image-75"></a></p>
<p><strong><code class="code-inline">.attr()</code>方法多了一个设置函数作为参数</strong> (<a href="http://api.jquery.com/attr/">.attr() 文档</a>)</p>
<p>你不但可以将一个函数用在<code class="code-inline">.attr()</code>里，还可以在这个函数里使用属性的当前值。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'&lt;img src="enter.png" alt="enter your name" /&gt;'</span><span style="color: rgb(0, 153, 0);">)</span>
.<span style="color: rgb(102, 0, 102);">attr</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"alt"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>index<span style="color: rgb(51, 153, 51);">,</span> value<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> <span style="color: rgb(51, 102, 204);">"Please, "</span> <span style="color: rgb(51, 153, 51);">+</span> value<span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>.val( Function )</strong> (<a href="http://api.jquery.com/val/">.val() 文档</a>)</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="html4strict"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">input</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"food"</span> <span style="color: rgb(0, 0, 102);">type</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">'text'</span> data-index<span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"0"</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">input</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"food"</span> <span style="color: rgb(0, 0, 102);">type</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">'text'</span> data-index<span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"1"</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"input:text.food"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">hide</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"&lt;ul class='sortable'&gt;&lt;li&gt;Peanut Butter&lt;/li&gt;&lt;li&gt;Jelly&lt;/li&gt;&lt;/ul&gt;"

</span><span style="color: rgb(0, 153, 0);">)</span>
  .<span style="color: rgb(102, 0, 102);">sortable</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span>
  .<span style="color: rgb(102, 0, 102);">bind</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"endsort"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">":text.food"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">val</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
      <span style="color: rgb(0, 0, 102); font-weight: bold;">return</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"ul.sortable li:eq("</span> <span style="color: rgb(51, 153, 51);">+</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">attr</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"data-index"</span><span style="color: rgb(0, 153, 0);">)</span>  <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">")"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">text</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>text和CDATAHTML元素也支持.text()方法了</strong> (<a href="http://api.jquery.com/text/">.text() 文档</a>, <a href="http://github.com/jquery/jquery/commit/b30af34f28074b491929445f5aad3d62c63e772f">Commit</a>)</p>
<h2 class="part-title">核心 (Core)</h2>
<p><strong>快捷元素创建</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d40083c866738727aa7ffd7f13d2955bc9575d5e">Commit</a>)</p>
<p>现在当你需要使用jQuery函数创建一个元素的时候，你可以同时附递一个对象来指定属性值和事件:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"
<div>"<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
    id<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"foo"</span><span style="color: rgb(51, 153, 51);">,</span>
    css<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 153, 0);">{</span>
        height<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"50px"</span><span style="color: rgb(51, 153, 51);">,</span>
        width<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"50px"</span><span style="color: rgb(51, 153, 51);">,</span>
        color<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"blue"</span><span style="color: rgb(51, 153, 51);">,</span>
        backgroundColor<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"#ccc"</span>
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
    click<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
       $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">css</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"backgroundColor"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">"red"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">appendTo</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"body"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></div>

</span></pre>
</div>
</div>
<p>对象里的键值的名字与相关的jQuery的方法的名字是对应的，对象的值会被作为参数传递给jQuery的方法。</p>
<p>(译注:譬如<code class="code-inline">$("&lt;a&gt;link&lt;/a&gt;", {css:{background:"#ccc"}});</code>相当于<code class="code-inline">$("&lt;a&gt;link&lt;/a&gt;")).css("background", "#ccc");</code></p>
<p><strong>.eq(-N), .get(-N) (负指数)</strong> (<a href="http://api.jquery.com/eq/">.eq() 文档</a>, <a href="http://api.jquery.com/get/">.get() 文档</a>, <a href="http://github.com/jquery/jquery/commit/e532dfe5228217f55a33122a4438fd70522dbb4b">Commit</a>)</p>
<p>你现在可以在<code class="code-inline">.get()</code>和<code class="code-inline">.eq()</code>方法里使用负数。譬如，你要选择倒数第2个div元素，或者是倒数第2个DOM对象:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">eq</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 153, 51);">-</span><span style="color: rgb(204, 0, 0);">2</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 153, 51);">-</span><span style="color: rgb(204, 0, 0);">2</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>新的.first()和.last()方法</strong> (<a href="http://api.jquery.com/first/">.first() 文档</a>, <a href="http://api.jquery.com/last/">.last() 文档</a>, <a href="http://github.com/jquery/jquery/commit/9de120e6d7cfffa3d990a6ccf23db3cd74e2bdc0">Commit</a>)</p>
<p>方便起见, 新增的<code class="code-inline">.first()</code>和<code class="code-inline">.last()</code>方法等同于<a href="http://api.jquery.com/eq/">.eq(0)</a>和<a href="http://api.jquery.com/eq/">.eq(-1)</a>.</p>
<p><strong>新的.toArray()方法</strong> (<a href="http://api.jquery.com/toArray/">.toArray() 文档</a>, <a href="http://github.com/jquery/jquery/commit/e124fec5e9cfee77cb23b27c0d43dc2631c83aab">Commit</a>)</p>
<p><a href="http://api.jquery.com/get">.get()</a>方法自始就是从jQuery集合里返回一个阵列。为了能够更明确, 你可以用<a href="http://api.jquery.com/toArray/">.toArray()</a>来达到一样的效果。(译注:这里应该是为了以后的版本留出空间，譬如以后可能会加入.toList()方法，到时候就会易于区分。) 不过，和<code class="code-inline">.get()</code>不一样的是，<code class="code-inline">.toArray()</code>不接受参数。</p>
<p><strong>jQuery()返回一个空集</strong> (<a href="http://api.jquery.com/jQuery/">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/04524287d3e0112deae570ff9247c734833431bb">Commit</a>)</p>
<p>在jQuery 1.3中,<a href="http://api.jquery.com/jQuery/">jQuery()</a>方法返回仅包括<code class="code-inline">document</code>的jQuery集合。这个可以用来创建一个空集，然后动态加入一些元素。注: <code class="code-inline">jQuery().ready()</code>方式在1.4中依然有效，但是被指示陈旧了。请使用<code class="code-inline">jQuery(document).ready()</code>或者<code class="code-inline">jQuery(function(){})</code>。</p>
<p><strong>jQuery(“TAG”)</strong> (<a href="http://api.jquery.com/element-selector/">Element Selector 文档</a>, <a href="http://github.com/jquery/jquery/commit/4ea4fad0902839c06c281b5de7b0aca29922b63d">Commit</a>)</p>
<p>当使用单个标签名字的时候jQuery会使用更快捷的路径。</p>
<p><strong>jQuery(“&lt;div&gt;”), jQuery(“&lt;div/&gt;”) 和 jQuery(“&lt;div&gt;&lt;/div&gt;”)</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/c4c820efff4fa7bcce0d5bf0a448625278ea6379">Commit</a>)</p>
<p>现在这三个方法都使用同一个代码路径了(document.createElement), 来优化<code class="code-inline">jQuery("&lt;div&gt;&lt;/div&gt;")</code>的性能。注意，如果你指定了属性，将会使用浏览器本身的语法分析(通过设置innerHTML)。</p>
<h2 class="part-title">样式 (CSS)</h2>
<p><strong>.css()方法在性能是以前的2倍。</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_03-perform-css.jpg"><img width="500" height="375" alt=".css()的性能提高 " src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_03-perform-css.jpg" title=".css()的性能提高 " class="alignnone size-full wp-image-76"></a></p>
<p><strong><code class="code-inline">.addClass()</code>, <code class="code-inline">.removeClass()</code>, 和 <code class="code-inline">.hasClass()</code>这几个方法在性能上是以前的3倍</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_04-perform-addClass.jpg"><img width="500" height="375" alt="addClass, removeClass, 和 hasClass的性能提高" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_04-perform-addClass.jpg" title="addClass, removeClass, 和 hasClass的性能提高" class="alignnone size-full wp-image-77"></a></p>
<p><strong>.toggleClass()可以切换多个css类了</strong> (<a href="http://api.jquery.com/toggleClass/">.toggleClass() 文档</a>, <a href="http://github.com/jquery/jquery/commit/5e6e53835e552920db4f88ac0c9eca71aaacbef0">Commit</a>)</p>
<p>你可以通过<a href="http://api.jquery.com/toggleClass/">.toggleClass()</a>调用多个css类的名字来切换他们。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">toggleClass</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"current active"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<h2 class="part-title">数据</h2>
<p><strong>.data()返回对象, .data(Object)设置对象</strong> (<a href="http://api.jquery.com/data/">.data() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d36d224cc52e70d837306d33a03f517ef72abc60">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/f6a0bf6816f4e2e67382b1b13fdd3ff2ea4b22f8">Commit 2</a>)</p>
<p>有时候你可能需要在一个元素上附加一个复杂的对象。一个常见的例子是你需要从一个元素身上复制所有的数据到令一个元素上。在jQuery 1.4里, 不使用任何参数调用<a href="http://api.jquery.com/data/">.data()</a>时，.data会返回一个复杂对象。(译注: 包含所有键-值对的对象。) 调用<a href="http://api.jquery.com/data/">.data(Object)</a> 则会设置这个对象。注意这个对象还包括了元素上绑定的事件，所以用的时候要小心。</p>
<p><strong>除非需要, 不然不会创建数据缓存。</strong> (<a href="http://github.com/jquery/jquery/commit/c4f144eeffd94c745839b0ced2de9c62cfa9f075">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/97e134fe80a734b97170bf43c9459511f4e165c7">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/67d445a703491c90a7d3c46be34bcdceb4d1c896">Commit 3</a>)</p>
<p>jQuery使用一个独特的自定义属性来获取特定元素上附加的数据。当查找数据，但是没有新加的数据的时候，jQuery会尽量避免创建这个自定义属性。这样可能会提高性能，同时还会在这种情况下避免污染DOM。</p>
<h2 class="part-title">效果 (Effects)</h2>
<p><strong>单个属性缓进缓出</strong> (<a href="http://api.jquery.com/animate/#per-property-easing">Per-property Easing 文档</a>, <a href="http://github.com/jquery/jquery/commit/93fdbeb963a9c350f807818c7cc99982942a92f3">Commit</a>)</p>
<p>除了能够给一个动态效果指定缓进出函数外，你现在可以指定每个属性的缓进出函数了。James Padolsey的<a href="http://james.padolsey.com/javascript/easing-in-jquery-1-4a2/">blog上</a>有更进一步的信息和演示。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"#clickme"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">click</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
  $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">animate</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
    width<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">"+=200px"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">"swing"</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">,</span>
    height<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">"+=50px"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">"linear"</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">,</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">2000</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
      $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">after</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"&lt;div&gt;Animation complete.&lt;/div&gt;"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<h2 class="part-title">事件 (Events)</h2>
<p><strong>新方法: jQuery.proxy()</strong> (<a href="http://api.jquery.com/jQuery.proxy/">jQuery.proxy() Documenation</a>, <a href="http://github.com/jquery/jquery/commit/66975de2d249643779e2b3daad0457f7f5f92508">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/1d2b1a57dae0b73b3d99197f73f4edb623b5574a">Commit 2</a>)</p>
<p>如果你需要保证一个函数内的”this”恒定地保持某个值, 你可以用<code class="code-inline">jQuery.proxy</code>获得一个相同作用域的函数。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> obj <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">{</span>
  <span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">"John"</span><span style="color: rgb(51, 153, 51);">,</span>
  test<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span> <span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(0, 0, 102);">name</span> <span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"#test"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">unbind</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"click"</span><span style="color: rgb(51, 153, 51);">,</span> obj.<span style="color: rgb(102, 0, 102);">test</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>

$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"#test"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">click</span><span style="color: rgb(0, 153, 0);">(</span> jQuery.<span style="color: rgb(102, 0, 102);">proxy</span><span style="color: rgb(0, 153, 0);">(</span> obj<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">"test"</span> <span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>多个事件绑定</strong> (<a href="http://api.jquery.com/bind">.bind() 文档</a>)</p>
<p>你可以通过递入一个对象来一次性绑定元素的多个事件。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div.test"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">bind</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
  click<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addClass</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"active"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
  mouseenter<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addClass</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"inside"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
  mouseleave<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">removeClass</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"inside"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>‘change’和’submit’事件规范化</strong> (<a href="http://api.jquery.com/change">Change 文档</a>, <a href="http://api.jquery.com/submit">Submit 文档</a>)</p>
<p>普通的或是即时的<code class="code-inline">change</code>和<code class="code-inline">submit</code>事件可以在各种浏览器上稳定工作了。我们覆盖了IE里的<code class="code-inline">change</code>和<code class="code-inline">submit</code>, 替换为与其他浏览器相同的事件。</p>
<p><strong>新的事件: ‘focusin’ and ‘focusout’</strong> (<a href="http://api.jquery.com/focusin/">.focusin() 文档</a>, <a href="http://api.jquery.com/focusout/">.focusout() 文档</a>, <a href="http://github.com/jquery/jquery/commit/03481a52c72e417b01cfeb499f26738cf5ed5839">Commit</a>)</p>
<p><code class="code-inline">focusin</code>和<code class="code-inline">focusout</code>在一般情况下等同于<code class="code-inline">focus</code>和<code class="code-inline">blur</code>, 但是多了向父元素传递的作用。如果你自己编写你的事件代理模式(TODO), 这个功能将对你有很大帮助。请注意对<code class="code-inline">focus</code>和<code class="code-inline">blur</code>使用<code class="code-inline">live()</code>方法将不会起作用; 在设计的时候我们根据 <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html">DOM事件规范</a>决定不使其向父元素传递事件。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"form"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">focusout</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>event<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tgt <span style="color: rgb(51, 153, 51);">=</span> event.<span style="color: rgb(102, 0, 102);">target</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>tgt.<span style="color: rgb(102, 0, 102);">nodeName</span> <span style="color: rgb(51, 153, 51);">==</span> <span style="color: rgb(51, 102, 204);">"INPUT"</span> <span style="color: rgb(51, 153, 51);">&amp;&amp;</span> <span style="color: rgb(51, 153, 51);">!</span>tgt.<span style="color: rgb(102, 0, 102);">value</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        $<span style="color: rgb(0, 153, 0);">(</span>tgt<span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">after</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"<span>nothing here</span>"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>所有的事件都可以成为即时事件</strong> (<a href="http://api.jquery.com/live">.live() 文档</a>)</p>
<p>除了<a href="http://api.jquery.com/ready">ready</a>, <a href="http://api.jquery.com/focus">focus</a> (用focusin), 和 <a href="http://api.jquery.com/blur">blur</a> (用focusout)以外, 所有能用<code class="code-inline">.bind()</code>绑定的事件都可以成为即时事件。</p>
<p>在<code class="code-inline">live()</code>所支持的事件里，我们对能够支持下面这几个额外的事件感到尤其骄傲。通过<code class="code-inline">.live()</code>里的事件代理, 1.4版实现了对<code class="code-inline">change</code>, <code class="code-inline">submit</code>, <code class="code-inline">focusin</code>, <code class="code-inline">focusout</code>, <code class="code-inline">mouseenter</code>, 以及<code class="code-inline">mouseleave</code>事件的跨浏览器支持。</p>
<p>注: 如果你需要即时的<code class="code-inline">focus</code>事件，你应该用<code class="code-inline">focusin</code>和<code class="code-inline">focusout</code>, 而不要用<code class="code-inline">focus</code>和<code class="code-inline">blur</code>, 因为就像前面提到的, <code class="code-inline">focus</code>和<code class="code-inline">blur</code>不向上传递。</p>
<p>还有, <code class="code-inline">live()</code>也接受数据对象作为参数了, 同<code class="code-inline">bind()</code>方法一样 (<a href="http://github.com/jquery/jquery/commit/71efbdd3b26f3a283f8d4bfdcc7b6343142027b9">Commit</a>)</p>
<p><strong>live/die也支持环境变量了</strong> (<a href="http://github.com/jquery/jquery/commit/30e760b63fd6d82f30833cd2864f245dd9594cd9">Commit</a>)</p>
<p>现在可以在绑定事件的时候给选择符指定一个环境。如果环境被指定了, 只有属于这个环境下的元素才会被绑定事件。在创建即时事件的时候, 元素本身不需要已经被定义, 但是环境必须被创建。</p>
<p><strong>确定ready事件至少含有<code class="code-inline">body</code>元素</strong> (<a href="http://github.com/jquery/jquery/commit/262fcf7b7b919da1564509f621cf7480a5d5572b">Commit</a>)</p>
<p>jQuery现在会检查<code class="code-inline">body</code>是不是存在，如果不存在，会对<code class="code-inline">body</code>进行轮流探询。</p>
<p><strong>在不需要手动处理内存溢出的非IE浏览器中, 卸载的速度提高了。</strong> (<a href="http://github.com/jquery/jquery/commit/f3474c00cd6d9e5fd61b6ef1562003e9986ad67d">Commit</a>)</p>
<h2 class="part-title">DOM操作 (Manipulation)</h2>
<p>在jQuery 1.4里一系列的DOM操作方法的性能都有巨大的提升。</p>
<p><strong><a href="http://api.jquery.com/append">.append()</a>, <a href="http://api.jquery.com/prepend">.prepend()</a>, <a href="http://api.jquery.com/before">.before()</a>, and <a href="http://api.jquery.com/after">.after()</a>的性能提高了。</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_05-perform-dom.jpg"><img width="500" height="375" alt="DOM嵌入的性能提高" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_05-perform-dom.jpg" title="DOM嵌入的性能提高" class="alignnone size-full wp-image-78"></a></p>
<p><strong><a href="http://api.jquery.com/html">.html()</a>的性能提高到以前的3倍。</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_06-perform-html.jpg"><img width="500" height="375" alt=".html()的性能提高" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_06-perform-html.jpg" title=".html()的性能提高" class="alignnone size-full wp-image-79"></a></p>
<p><strong>.remove()和.empty()的速度则达到以前的4倍.</strong></p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_07-perform-remove.jpg"><img width="500" height="375" alt=".remove() 和 .empty()的性能提高" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_07-perform-remove.jpg" title=".remove() 和 .empty()的性能提高" class="alignnone size-full wp-image-80"></a></p>
<p><strong>新方法: .detach()</strong> (<a href="http://api.jquery.com/detach/">.detach() 文档</a>, <a href="http://github.com/jquery/jquery/commit/7a67f8897d3c2ed97254f0fdb969be14e77962d1">Commit</a>)</p>
<p><code class="code-inline">detach()</code>将一个元素从DOM里移除, 但是并不卸载关联的事件处理函数。这个方法可用于暂时性的将一个元素移除，执行相关操作，然后返回。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> foo <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"#foo"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">click</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">// 相关操作</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
foo.<span style="color: rgb(102, 0, 102);">detach</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">// foo保留了相关处理函数</span>
foo.<span style="color: rgb(102, 0, 102);">appendTo</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"body"</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>新的unwrap()方法</strong> (<a href="http://api.jquery.com/unwrap/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/69e6e53555f21f07b534f1169298f7b33011bb4b">commit</a>)</p>
<p><code class="code-inline">unwrap()</code>方法拿到一个已知的父元素的子元素，然后将父元素用子元素替换。(译注: 将子元素从”包裹”里拿出来, 因名unwrap)。如此这般:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="html4strict"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
        <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>annie<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>davey<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>stevie<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">unwrap</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="html4strict"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span>
   <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>annie<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>davey<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>stevie<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">p</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span></pre>
</div>
</div>
<p><strong>domManip方法里的缓存</strong> (<a href="http://github.com/jquery/jquery/commit/8db967e9d52407c8e76d81b9d472800667f6fa29">commit</a>)</p>
<p>jQuery会将<code class="code-inline">jQuery("&lt;div&gt;")</code>和<code class="code-inline">.after("&lt;div&gt;")</code>一类方法创建的节点记入缓存。这样, 对于利用这些方法, 使用字符串进行DOM操作的页面，性能将有极大的提高。</p>
<p><strong>无连接的节点间的before, after, replaceWith操作</strong> (<a href="http://github.com/jquery/jquery/commit/173c1477ae6efc4c2eeb7131ba0646c4e1323975">commit</a>)</p>
<p>现在你可以对还没有放置到DOM Tree上的节点进行<code class="code-inline">before</code>, <code class="code-inline">after</code>, 和<code class="code-inline">replaceWith</code>的操作了。意味着你可以先对节点进行复杂的操作, 待完成后再放到合适的DOM位置上。这样也能尽量避免操作过程中造成重新排版。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"&lt;div&gt;"<span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">before</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"&lt;p&gt;Hello&lt;/p&gt;"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">appendTo</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"body"</span><span style="color: rgb(0, 153, 0);">)</span></span></pre>
</div>
</div>
<p><strong><code class="code-inline">.clone(true)</code> 也会复制关联数据</strong> (<a href="http://api.jquery.com/clone/">clone 文档</a>, <a href="http://github.com/jquery/jquery/commit/4b70f006f579fba24a882d80ca67f1971dbb4922">commit</a>)</p>
<p>1.3版中, <code class="code-inline">.clone(true)</code>虽然也是深度复制, 但是没有复制关联的数据。1.4版里，它则会复制数据, 同时还包括所有的事件。这点上和<code class="code-inline">jQuery.extend</code>在语义想同的, 所以普通对象和阵列会被复制, 但是自定义的对象则不会。</p>
<h2 class="part-title">位移 (Offset)</h2>
<p><strong>.offset( coords | Function )</strong> (<a href="http://api.jquery.com/offset/">.offset() 文档</a>, <a href="http://github.com/jquery/jquery/commit/daffb954e397bd5d9f8e9aaedab6c0baa9609e1e">commit</a>)</p>
<p>现在可以设置元素的位移了! 和所有的设置函数一样, <code class="code-inline">offset</code>也可以接受一个函数作为第二个参数。</p>
<h2 class="part-title">队列 (Queueing)</h2>
<p>队列经历了一次大修, 使用队列会比使用默认的<code class="code-inline">fx</code>更易掌握。</p>
<p><strong>新的 .delay() 方法</strong> (<a href="http://api.jquery.com/delay/">.delay() 文档</a>, <a href="http://github.com/jquery/jquery/commit/bbd933cbfe6d31a749cb336d7a84155ccfab247f">commit</a>)</p>
<p><code class="code-inline">.delay()</code>方法会根据参数滞后若干毫秒执行队列里剩下的对象。默认的它会使用”fx”队列。但你可以选择性的通过<code class="code-inline">delay</code>方法的第二个参数选择其他队列。(译注:每个队列都以一个名字识别。)</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fadeIn</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">delay</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">4000</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fadeOut</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>队列里的<code class="code-inline">next</code></strong> (<a href="http://api.jquery.com/queue/">.queue() 文档</a>, <a href="http://github.com/jquery/jquery/commit/89b4bc53ca0ca3d4e5c80b94ce92b09cc34af8ef">commit</a>)</p>
<p>jQuery 1.4版里, 当队列里的一个函数被调用的时候，第一个参数会被设为另一个函数。当后者被调用的时候, 会自动排除队列里的下一个对象, 以此来推动队列到下一步。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript">jQuery<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"div"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">queue</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"ajax"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>next<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
  <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> self <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(51, 153, 51);">;</span>
  jQuery.<span style="color: rgb(102, 0, 102);">getJSON</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"/update"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>json<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span>self<span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">html</span><span style="color: rgb(0, 153, 0);">(</span>json.<span style="color: rgb(102, 0, 102);">text</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    next<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">queue</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"ajax"</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
  $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">this</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fadeIn</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><strong>.clearQueue()</strong> (<a href="http://api.jquery.com/clearQueue/">clearQueue 文档</a>, <a href="http://github.com/jquery/jquery/commit/d857315967a1cc07b73924bbdf2eb12f4f910c45">commit</a>)</p>
<p>队列可以被清空了。这个方法会移除队列里所有未执行的函数, 但不会移除正在运行的函数。无参数的情况下调用<code class="code-inline">.clearQueue()</code>方法将会清空默认的”fx”队列。</p>
<h2 class="part-title">选择符 (Selectors)</h2>
<p><strong>“#id p”效率更高</strong> (<a href="http://github.com/jeresig/sizzle/commit/c5c18ae5f17f11b39b7f261633e4bfc5ef3e99d7">commit</a>)</p>
<p>所有以ID开头的选择符都得到了优化, 能够在瞬间得到返回值。所有以ID为开头的选择符速度将一直快于其他选择符。</p>
<h2 class="part-title">页面遍访 (Traversing)</h2>
<p><strong>.index(), .index(String)</strong> (<a href="http://api.jquery.com/index/">index 文档</a>, <a href="http://github.com/jquery/jquery/commit/ffd457d4561eb1a6653aaef90f92a3b3010b9139">commit</a>)</p>
<p><code class="code-inline">.index()</code> 方法经过重写, 变得更加直观和灵活。</p>
<p>你可以获得一个元素相对于同父元素的指数:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 102, 0); font-style: italic;">// 计算第一个 &lt;li class="current"&gt; 元素在它所有的同父元素中的指数:</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"li.current"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">index</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span></pre>
</div>
</div>
<p>你也可以获得一个元素在一个jQuery元素集合中的指数, 这个集合可以用一个选择符或者是一个DOM元素来指定:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="javascript"><span style="color: rgb(0, 102, 0); font-style: italic;">// 计算这个 &lt;h3 id="more-info"&gt; 元素在页面上所有 &lt;h3&gt; 元素里的指数:
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"#more-info"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">index</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"h3"</span><span style="color: rgb(0, 153, 0);">)</span>

</span></pre>
</div>
</div>
<p><strong>新的.has()方法</strong> (<a href="http://api.jquery.com/has/">has 文档</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>这个方法相当于选择符里的<code class="code-inline">:has()</code>过滤法。它拿到一个jQuery集合,返回含有指定选择符的元素。</p>
<p><strong>新的 .nextUntil(), .prevUntil(), .parentsUntil() 方法</strong> (<a href="http://api.jquery.com/nextUntil/">.nextUntil() 文档</a>, <a href="http://api.jquery.com/prevUntil/">.prevUntil() 文档</a>, <a href="http://api.jquery.com/parentsUntil/">.parentsUntil() 文档</a>, <a href="http://github.com/jquery/jquery/commit/2b481b93cfca62f95aa7005e7db651456fa08e65">commit</a>)</p>
<p>新的”until”方法类似于<code class="code-inline">.nextAll()</code>, <code class="code-inline">.prevAll()</code>, 和<code class="code-inline">.parents()</code>。区别是可以用一个选择符来停止元素探索。</p>
<p><strong>.add(String, Element)</strong> (<a href="http://jquery14.com/day-01/%3C/p%3E%3Cp%3Ehttp://api.jquery.com/add/%3C/p%3E%3Cp%3E">.add() 文档</a>, <a href="http://jquery14.com/day-01/%3C/p%3E%3Cp%3Ehttp://github.com/jquery/jquery/commit/b0fe380cf89564305646bbd55d1fd7bd210fd591%3C/p%3E%3Cp%3E">commit</a>)</p>
<p>可以给<code class="code-inline">.add()</code>方法指定环境了。这个功能可以用于在一个调用链中加入和操作额外元素(比如Ajax请求里返回的新元素)。</p>
<p><strong>.closest(filter, DOMElement)</strong> (<a href="http://api.jquery.com/closest/">.closest() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d6991fa273515a8503692324499edcc71b5c3f64">commit</a>)</p>
<p>可以通过<code class="code-inline">closest</code>方法的第2个参数设置一个<code class="code-inline">DOMElement</code>环境。给<code class="code-inline">closest</code>设置一个环境一般能够提高这个方法的运行速度。这个优化也适用<code class="code-inline">live()</code>, 因为这个方法内部调用了<code class="code-inline">closest()</code>。</p>
<h2 class="part-title">常用工具 (Utilities)</h2>
<p><strong>jQuery.isEmptyObject()</strong> (<a href="http://api.jquery.com/jQuery.isEmptyObject/">jQuery.isEmptyObject() 文档</a>, <a href="http://github.com/jquery/jquery/commit/a38a5cd531a328319f8b7f3f33a84044b54591ce">commit</a>)</p>
<p>如果对象,em&gt;没有任何属性, 该方法将返回<code class="code-inline">true</code>。<code class="code-inline">jQuery.isEmptyObject()</code>方法不对参数进行任何检查, 所以请保证参数是一个对象。</p>
<p><strong>jQuery.isPlainObject()</strong> (<a href="http://api.jquery.com/jQuery.isPlainObject/">jQuery.isPlainObject()</a>, <a href="http://github.com/jquery/jquery/commit/4b55e94d0849568a2fd121952f13a9d6571c731f">commit</a> )</p>
<p>如果一个对象是通过字符创建的(译注:{}),<code class="code-inline">jQuery.isPlainObject()</code>返回<code class="code-inline">true</code>; 如果对象是其他类别的对象(译注:如new Object())或者是基本类型, 则返回<code class="code-inline">false</code>。</p>
<p><strong>jQuery.contains()</strong> (<a href="http://api.jquery.com/jQuery.contains/">jQuery.contains() 文档</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>如果两个参数都是DOM节点，并且第二个节点是嵌套在第一个节点内部的话, <code class="code-inline">jQuery.contains()</code>返回<code class="code-inline">true</code>。反之返回<code class="code-inline">false</code>。</p>
<p><strong>jQuery.noop</strong> (<a href="http://api.jquery.com/jQuery.noop/">jQuery.noop() 文档</a>, <a href="http://github.com/jquery/jquery/commit/6cb2945837ccca55204191a8e7a70b2b2486c28e">commit</a>)</p>
<p>是个空的函数, 可以用在必须要有一个函数的情况下。(译注: noop是No Operation的意思。)</p>
<p><strong>jQuery.unique()</strong> (<a href="http://api.jquery.com/jQuery.unique/">jQuery.unique() 文档</a>)</p>
<p>jQuery 1.4版中, <code class="code-inline">jQuery.unique()</code>方法返回结果里的元素是按照他们在页面里的顺序排序的。由于在创建jQuery集合的时候jQuery使用<code class="code-inline">jQuery.unique()</code>方法, 所以jQuery方法返回的集合也是按照他们在页面里的顺序排列的。</p>
<h2 class="part-title">其他 (Miscellaneous)</h2>
<p><strong>jQuery.browser以浏览器引擎为中心</strong> (<a href="http://api.jquery.com/jQuery.browser/">jQuery.browser 文档</a>, <a href="http://jquery14.com/day-01/%3Cbr%20/%3Ehttp://github.com/jquery/jquery/commit/ffb1867a4364ea65e60dad3469e8c8eb420ebcac" class="broken_link">commit</a>)</p>
<p>例如, 你可以通过<code class="code-inline">jQuery.browser.webkit</code>探测引擎是否是Webkit。</p>
<p><strong>改进了对<code class="code-inline">applets</code>的处理</strong> (<a href="http://github.com/jquery/jquery/commit/59802928566b6be3a66d65e77c2418fff37e6f5f">commit 1</a>, <a href="http://github.com/jquery/jquery/commit/3ec2f1aef6b137d0f639e2fc53f95352d24b9d90">commit 2</a>)</p>
<p>jQuery不再试图在Java applets上绑定事件或是数据了(绑定事件或是数据会出现错误)。</p>
<p><strong>不再使用arguments.callee</strong> (<a href="http://github.com/jquery/jquery/commit/985856b823b1648bffc3fd63c1faf836d0ddaf7c">commit</a>)</p>
<p>为了顺应<a href="http://code.google.com/p/google-caja/">Caja</a>的要求, 同时也因为即将开始应用的ECMAScript 5规范里将其标记为陈旧, 我们将jQuery核心中所有用到<code class="code-inline">arguments.callee</code>的代码都移除了。</p>
<p><strong>用Closure Compiler替换了YUI Min</strong> (<a href="http://github.com/jquery/jquery/commit/3fd62eae9df3159fc238a515bb748140a942313d">commit</a>)</p>
<h2 class="part-title">内部重组 (Internal Reorganization)</h2>
<p>在1.4版的开发过程中的一个重点是要建立一个更易读, 更易懂的代码库。为了达到这个目标我们树立了一系列编写代码规范的向导。</p>
<p>下面是一些主要的变化:</p>
<ul>
<li>旧的’core.js’文件被分成了’attribute.js’, ‘css.js’, ‘data.js’, ‘manipulation.js’, ‘traversing.js’, and ‘queue.js’.</li>
<li>ready事件被移入了’core.js’ (因为它是jQuery的一个基本组成之一)。</li>
<li>大部分核心代码都符合新的<a href="http://docs.jquery.com/JQuery_Core_Style_Guidelines">代码规范</a>.</li>
<li>css和属性的逻辑被划分开来, 不再如以往相互缠绕。</li>
</ul>
<h2 class="part-title">测试 (Testing)</h2>
<p>jQuery 1.4版发布过程中我们<a href="http://dev.jquery.com/report/34" class="broken_link">修复了207个问题</a> (比较之下1.3版里有97个修复)。</p>
<p>jQuery 1.4.此外, 测试的数量从jQuery 1.3.2中的1504例升到了1.4中的3060例。</p>
<p>所有测试都在主要浏览器里完全通过了。(Safari 3.2, Safari 4, Firefox 2, Firefox 3, Firefox 3.5, IE 6, IE 7,<br />
IE 8, Opera 10.10, and Chrome)</p>
<p><a rel="lightbox[69]" href="http://imgs.leeiio.me/blogimgs/2010/01/20100121_08-test.jpg"><img width="500" height="277" alt="jQuery 1.4 测试结果" src="http://imgs.leeiio.me/blogimgs/2010/01/20100121_08-test.jpg" title="jQuery 1.4 测试结果" class="alignnone size-full wp-image-81"></a></p>
<h1><a name="backwards"></a></h1>
<p>我们尽量试图减小jQuery 1.4对大规模升级可能造成的麻烦 &ndash; 保持所有公开函数的签名不变。即使如此, 请通读下面的列表以保证你对可能对你的应用造成问题的变更。</p>
<ul>
<li><a href="http://api.jquery.com/add">.add()</a>不再简单的将结果串联到一起, 结果将会被混合到一起, 然后根据他们在页面里的顺序排列。</li>
<li><a href="http://api.jquery.com/clone">.clone(true)</a>将复制事件和数据, 而不仅是事件。</li>
<li><a href="http://api.jquery.com/jQuery.data">jQuery.data(elem)</a> 不再返回<code class="code-inline">id</code>, 取而代之的是元素的对象缓存。</li>
<li><a href="http://api.jquery.com/jQuery">jQuery()</a> (无参数) 不再自动转换成<a href="http://api.jquery.com/jQuery">jQuery(document)</a>了。</li>
<li>通过<a href="http://api.jquery.com/val">.val(“…”)</a>获得一个<code class="code-inline">option</code>或一个<code class="code-inline">checkbox</code>的值不再有歧义(将总是根据<code class="code-inline">value</code>属性选择, 而不是根据<code class="code-inline">text</code>的值)。(<a href="http://github.com/jquery/jquery/commit/f298cce100c6fe23840ac95e66aaea9cb2bfb447">Commit</a>)</li>
<li><a href="http://api.jquery.com/jQuery.browser">jQuery.browser.version</a>现在将返回引擎的版本.</li>
<li>现在起将对引入的JSON更严格, 如果JSON的格式不符将会报错。如果你需要对不符合JSON严格格式的Javascript进行估值, 你必须设置请求的文件类型为纯文本, 然后用<code class="code-inline">eval()</code>来对内容估值。</li>
<li>参数序列化默认会按照PHP/Rails的风格进行。你可以通过<code class="code-inline">jQuery.ajaxSettings.traditional = true;</code>来切换到旧的序列化方式。你也可以针对个别请求进行切换, 在调用<a href="http://api.jquery.com/jQuery.ajax">jQuery.ajax</a>的时候递入<code class="code-inline">{traditional: true}</code></li>
<li>内部的jQuery.className被移除了。</li>
<li><a href="http://api.jquery.com/jQuery.extend">jQuery.extend(true, …)</a>不再扩展复杂对象或是阵列。(TODO)</li>
<li>如果一个<a href="http://api.jquery.com/jQuery.ajax">Ajax请求</a>没有指定dataType, 而返回的数据类型是”text/javascript”, 那么回复将会被执行。之前, 必须明确的指定dataType。</li>
<li>设置<a href="http://api.jquery.com/jQuery.ajax">Ajax 请求</a>的”ifModified”属性会将ETags纳入考虑。</li>
</ul>
<p>我们还针对1.4版中可能造成问题的变更编写了一个向后兼容的<a href="http://github.com/jquery/jquery-compat-1.3">插件</a>。如果你升级到1.4以后出现问题, 可以在引入1.4版的文件之后引入这个插件。</p>
<p>如何使用这个插件:</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace;" class="html4strict"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">script</span> <span style="color: rgb(0, 0, 102);">src</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"http://code.jquery.com/jquery.js"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">script</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">script</span> <span style="color: rgb(0, 0, 102);">src</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"http://code.jquery.com/jquery.compat-1.3.js"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">script</span>&gt;</span></pre>
</div>
</div>
<h1>原始数据和测试页面</h1>
<p>性能测试中我们使用了下列测试套包:</p>
<ul>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=attr">Attributes</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=class">Class</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=dom">DOM Manipulation</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=empty">Empty/Remove</a></li>
<li>Function Call Profiling: <a href="http://ejohn.org/files/jquery-profile.html">1.3.2</a> <a href="http://ejohn.org/files/jquery-profile-14.html">1.4</a>.</li>
</ul>
<p>结果的原始数据 (所有的数据都是 1.3.2 vs. 1.4):</p>
<p>函数调用的次数<br />
547    3<br />
760    3<br />
500    200<br />
896    399<br />
23909    299<br />
307    118<br />
28955    100<br />
28648    201<br />
1662    593</p>
<p>DOM嵌入<br />
558    317<br />
1079    624<br />
1079    516<br />
1155    829<br />
436    332<br />
196    194<br />
243    169</p>
<p>HTML<br />
116    46<br />
281    78<br />
313    78<br />
234    63<br />
134    43<br />
43    42<br />
91    27</p>
<p>CSS/属性<br />
703    370<br />
1780    1250<br />
1765    1250<br />
1157    749<br />
629    498<br />
346    184<br />
333    161</p>
<p>CSS<br />
114    52<br />
203    93<br />
118    93<br />
109    47<br />
116    54<br />
58    24<br />
54    22</p>
<p>CSS类<br />
553    138<br />
1578    546<br />
1515    501<br />
1033    327<br />
769    298<br />
229    80<br />
173    41</p>
<p>移除/清空<br />
3298    286<br />
9030    2344<br />
7921    1703<br />
5282    1266<br />
2898    303<br />
1166    140<br />
1034    122</p>
<p>原文地址: <a href="http://jquery14.com/day-01" rel="nofollow">http://jquery14.com/day-01</a><br />
译文地址: <a href="http://www.uxd2.com/2010/01/翻译-jquery1-4官方文档/" rel="nofollow" class="broken_link">UXD2</a><br />
原译者署名:coolnalu</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/jquery-1_4-released/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Sweet Titles for jQuery (美妙的标题提示) !</title>
		<link>http://leeiio.me/sweet-titles-for-jquery/</link>
		<comments>http://leeiio.me/sweet-titles-for-jquery/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 07:27:21 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[用户体验]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Sweet Titles]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1478</guid>
		<description><![CDATA[<img src="http://imgs.leeiio.me/blogimgs/2009/07/20090727_sweettitles-jquery.gif" alt="Sweet Titles for jQuery (美妙的标题提示)" />
Sweet Titles 这个名字源自于一个改变 Title 提示效果的 js 插件 <a rel="nofollow" href="http://www.dustindiaz.com/sweet-titles-finalized/">Sweet Titles Finalized</a>。此插件不但让你的 title 提示效果变得美观，而且可以显示出你将要点击的链接的 url，让用户知道自己将要去哪里，同时提升了用户感受度。而且我认为，系统的 title 提示有时间延迟，用 js 实现的可以迅速的展示出来。 <a href="http://leeiio.me/sweet-titles-for-jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2009/07/20090727_sweettitles-jquery.gif" alt="Sweet Titles for jQuery (美妙的标题提示)" /><br />
Sweet Titles 这个名字源自于一个改变 Title 提示效果的 js 插件 <a rel="nofollow" href="http://www.dustindiaz.com/sweet-titles-finalized/">Sweet Titles Finalized</a>。此插件不但让你的 title 提示效果变得美观，而且可以显示出你将要点击的链接的 url，让用户知道自己将要去哪里，同时提升了用户感受度。而且我认为，系统的 title 提示有时间延迟，用 js 实现的可以迅速的展示出来。<br />
<span id="more-1478"></span><br />
大家都知道 jQuery 是一个美妙且强大的 Javascript 库，用 jQuery 来写这个效果的话不单代码得到了很大的精简，效果的实现也可以更加美妙，更加容易对效果进行扩展。</p>
<p>所以我用 jQuery 对这个效果的代码进行了重新编写，请看下面的代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> sweetTitles <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    x <span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>                             <span style="color: #006600; font-style: italic;">// @Number: x pixel value of current cursor position</span>
    y <span style="color: #339933;">:</span> <span style="color: #CC0000;">20</span><span style="color: #339933;">,</span>                             <span style="color: #006600; font-style: italic;">// @Number: y pixel value of current cursor position</span>
    tipElements <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #339933;">,</span>                  <span style="color: #006600; font-style: italic;">// @Array: Allowable elements that can have the toolTip,split with &quot;,&quot;</span>
    noTitle <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>                     <span style="color: #006600; font-style: italic;">//if this value is false,when the elements has no title,it will not be show</span>
    init <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> noTitle <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">noTitle</span><span style="color: #339933;">;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">tipElements</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mouseover</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>noTitle<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    isTitle <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
                    isTitle <span style="color: #339933;">=</span> $.<span style="color: #660066;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">title</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isTitle<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myTitle</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">title</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">href</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">30</span> <span style="color: #339933;">?</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span>.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;...&quot;</span> <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">title</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> tooltip <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;div id='tooltip'&gt;&lt;p&gt;&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myTitle</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;em&gt;&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myHref</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/em&gt;&quot;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/p&gt;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span>
                    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>tooltip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tooltip'</span><span style="color: #009900;">&#41;</span>
                        .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                            <span style="color: #3366CC;">&quot;opacity&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;0.8&quot;</span><span style="color: #339933;">,</span>
                            <span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">pageY</span><span style="color: #339933;">+</span><span style="color: #CC0000;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #339933;">,</span>
                            <span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">pageX</span><span style="color: #339933;">+</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span>
                        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'fast'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mouseout</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myTitle</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">title</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">myTitle</span><span style="color: #339933;">;</span>
                        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tooltip'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mousemove</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tooltip'</span><span style="color: #009900;">&#41;</span>
                    .<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                        <span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">pageY</span><span style="color: #339933;">+</span><span style="color: #CC0000;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #339933;">,</span>
                        <span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">pageX</span><span style="color: #339933;">+</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span>
                    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    sweetTitles.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>代码是不是很简单，记住不要忘了载入 jQuery 库哦。</p>
<p>当然光有效果没有样式还不行，需要制定一些 css 样式才能让整个效果显得更加美妙。以下是我的 css，供参考。</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">body div<span style="color: #cc00cc;">#tooltip</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>z-index<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1000</span><span style="color: #00AA00;">;</span>max-<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">220px</span><span style="color: #00AA00;">;</span>width<span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span> !important<span style="color: #00AA00;">;</span>width<span style="color: #00AA00;">:</span><span style="color: #933;">220px</span><span style="color: #00AA00;">;</span>background<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>text-align<span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>padding<span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>min-<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1em</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
body div<span style="color: #cc00cc;">#tooltip</span> p <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>padding<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>color<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>font<span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> verdana<span style="color: #00AA00;">,</span>arial<span style="color: #00AA00;">,</span><span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
body div<span style="color: #cc00cc;">#tooltip</span> p em <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>margin-<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>color<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#f60</span><span style="color: #00AA00;">;</span>font-style<span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>font-weight<span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p><p class="preview left"><a href="http://leeiio.me/demo/5-sweet-titles-for-jquery-v1/" title="查看演示">View Demo
<em title="Sweet Titles for jQuery (美妙的标题提示)">Sweet Titles for jQuery</em></a></p> <p class="download left"><a class="downloadlink" href="http://leeiio.me/wp-content/plugins/download-monitor/download.php?id=2" title="Sweet Titles for jQuery (美妙的标题提示),共被下载947次,最后更新时间：2009-07-27" >ZIP File<em title="Total Downloads:947">22.75 kB 共被下载947次</em></a></p><p class="clear"></p></p>
<p>2010.11.27更新：增加选项设置当没有title属性的时候不显示sweetTitle。</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/sweet-titles-for-jquery/feed/</wfw:commentRss>
		<slash:comments>79</slash:comments>
		</item>
		<item>
		<title>新书《锋利的 jQuery》</title>
		<link>http://leeiio.me/book-sharp-jquery/</link>
		<comments>http://leeiio.me/book-sharp-jquery/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 18:48:04 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[設計資源]]></category>
		<category><![CDATA[锋利的jQuery]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[新书]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1405</guid>
		<description><![CDATA[感谢 cssRain 的站长赠送的这本《锋利的jQuery》。 曾经有朋友问我为什么最终选择jQuery。说实话，这个也说不上为什么，也许是当初jQuery给我的第一印象非常好的原因吧。它非常容易上手，它的大部分思想都是从HTML和CSS的结构中借鉴而来的，所以编程经验不多的设计师能够快速学会使用该库。记得那时候的我经常会在用jQuery做出的某种动态效果后而高兴不已，常常惊叹于jQuery如此小巧，却有如此强大的功能。 &#8230; 我接触 jQuery 也就是几个月前的事情，那时候还不会 Javascript，因为 jQuery 上手十分容易，且拥有强大的链式结构，让我十分欢喜，可以快速地写出我想要的效果。无疑，jQuery 是一个小巧且强大的 Javascript 库。 此书由 cssRain 的站长单东林以及张晓菲和魏然编写，因为我自己还没有看过，所以也不好说强烈推荐哈，对 jQuery 感兴趣的同学们可以买来看看！ 当然学习 jQuery ，手册是必不可少的，我也搭建了一个 jQuery 在线手册，http://jquery.leeiio.me。]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2009/06/20090626_sharpjquery.jpg" alt="锋利的jQuery" /><br />
感谢 cssRain 的站长赠送的这本《锋利的jQuery》。</p>
<blockquote><p>
曾经有朋友问我为什么最终选择jQuery。说实话，这个也说不上为什么，也许是当初jQuery给我的第一印象非常好的原因吧。它非常容易上手，它的大部分思想都是从HTML和CSS的结构中借鉴而来的，所以编程经验不多的设计师能够快速学会使用该库。记得那时候的我经常会在用jQuery做出的某种动态效果后而高兴不已，常常惊叹于jQuery如此小巧，却有如此强大的功能。<br />
&#8230;
</p></blockquote>
<p><span id="more-1405"></span><br />
我接触 jQuery 也就是几个月前的事情，那时候还不会 Javascript，因为 jQuery 上手十分容易，且拥有强大的链式结构，让我十分欢喜，可以快速地写出我想要的效果。无疑，jQuery 是一个小巧且强大的 Javascript 库。<br />
此书由 cssRain 的站长单东林以及张晓菲和魏然编写，因为我自己还没有看过，所以也不好说强烈推荐哈，对 jQuery 感兴趣的同学们可以买来看看！<br />
当然学习 jQuery ，手册是必不可少的，我也搭建了一个 jQuery 在线手册，<a href="http://jquery.leeiio.me">http://jquery.leeiio.me</a>。</p>
<p><script type="text/javascript" > <!--
dd_ad_output="html";
dd_ad_width=242;
dd_ad_height=122;
dd_ad_client="P-270478";
dd_ad_format=20;
dd_ad_id=0;
dd_product_id=20605214;
dd_display_style=1;
dd_text_url="";
dd_color_text="aaaaaa";
dd_color_bg="";
dd_open_target="_blank";
dd_border="0";
dd_color_link="4b4b4b";
//--></script><br />
<script type="text/javascript" src="http://union.dangdang.com/union/script/dd_ads.js" ></script></p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/book-sharp-jquery/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>改善网站体验小细节，点击改变链接的文本!</title>
		<link>http://leeiio.me/jquery-changes-link-text/</link>
		<comments>http://leeiio.me/jquery-changes-link-text/#comments</comments>
		<pubDate>Sat, 02 May 2009 08:13:47 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[網頁 視覺/體驗]]></category>
		<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[点击改变链接的文本]]></category>
		<category><![CDATA[网站体验]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1304</guid>
		<description><![CDATA[jQuery 真是一个非常伟大的 javascript library，至少在我不会写 JS 的时候第一时间接触了它，虽然还有其他很多优秀的 javascript library，但是目前我还是对其情有独钟，它让你的网站显得更加酷，同时在一定程度上给了用户不错的视觉体验… 有时候浏览器变得缓慢或者网络十分缓慢的时候，当你点击了一个链接，你要做的就是对着页面傻看着，页面既不刷新，也没有任何提示，并没有给用户一个好的引导。一些并不是网络从业者的访客可能都不知道你的网站到底怎么了，明明点击了链接却没有反应，从而造成了不好的印象。所以我觉得，为什么不给出一些提示来告诉他们页面正在加载中呢(当他们点击了某个链接的时候)。 $&#40;'a'&#41;.click&#40;function&#40;&#41;&#123; $&#40;this&#41;.text&#40;'loading...'&#41;; &#125;&#41;; 以上这段代码就是改变你所点击的链接的文本为 loading&#8230;当然你如果只想让局部的链接有这种效果的话，自己去选择对象吧。 也许你也已经注意到本站在点击链接的时候，除了链接文本变为 loading&#8230;之外，还会在左上角弹出页面加载的提示，虽然都是些噱头的功能，但是无疑会让用户觉得很眩，多少会吸引用户的注意力从而让等待显得不那么漫长。 我的做法是在你的模板里放置如下代码( CSS 自行控制，别忘了让其绝对定位到顶部)： &#60;div id=&#34;clickload&#34;&#62;页面假装异步加载中...&#60;/div&#62; 然后就是使用 jQuery 来控制以上的 Div 的显示： $&#40;'a'&#41;.click&#40;function&#40;&#41;&#123; $&#40;this&#41;.text&#40;'loading...'&#41;; $&#40;'#clickload'&#41;.show&#40;&#41;; &#125;&#41;; 不过有一点要提醒的是，显然你不能对全站的 a 链接都启用这个效果，因为还有一些 a 链接是在新窗口打开外链或者是 # 或者是 javascript 的，当你点击那些链接的时候当前页面显然不会跳转到新的页面，那么左上角弹出的提示显然也不会被刷新掉，所以你需要对 a &#8230; <a href="http://leeiio.me/jquery-changes-link-text/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>jQuery 真是一个非常伟大的 javascript library，至少在我不会写 JS 的时候第一时间接触了它，虽然还有其他很多优秀的 javascript library，但是目前我还是对其情有独钟，它让你的网站显得更加酷，同时在一定程度上给了用户不错的视觉体验…</p>
<p>有时候浏览器变得缓慢或者网络十分缓慢的时候，当你点击了一个链接，你要做的就是对着页面傻看着，页面既不刷新，也没有任何提示，并没有给用户一个好的引导。一些并不是网络从业者的访客可能都不知道你的网站到底怎么了，明明点击了链接却没有反应，从而造成了不好的印象。所以我觉得，为什么不给出一些提示来告诉他们页面正在加载中呢(当他们点击了某个链接的时候)。<br />
<span id="more-1304"></span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading...'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>以上这段代码就是改变你所点击的链接的文本为 loading&#8230;当然你如果只想让局部的链接有这种效果的话，自己去选择对象吧。</strong></p>
<p>也许你也已经注意到本站在点击链接的时候，除了链接文本变为 loading&#8230;之外，还会在左上角弹出页面加载的提示，虽然都是些噱头的功能，但是无疑会让用户觉得很眩，多少会吸引用户的注意力从而让等待显得不那么漫长。</p>
<p>我的做法是在你的模板里放置如下代码( CSS 自行控制，别忘了让其绝对定位到顶部)：</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;clickload&quot;</span>&gt;</span>页面假装异步加载中...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>然后就是使用 jQuery 来控制以上的 Div 的显示：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading...'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#clickload'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>不过有一点要提醒的是，显然你不能对全站的 a 链接都启用这个效果，因为还有一些 a 链接是在新窗口打开外链或者是 # 或者是 javascript 的，当你点击那些链接的时候当前页面显然不会跳转到新的页面，那么左上角弹出的提示显然也不会被刷新掉，所以你需要对 a 进行过滤。</p>
<p>我只做了简单的过滤，排除了那些新窗口打开的外链</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a[href*=&quot;http://leeiio.me&quot;]'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>当然具体还得因你自己的站而对 a 进行筛选，你可以选择只针对侧边栏的链接啊或者导航链接啊或者只是文章标题等。</p>
<p>很简单对吧，说了只是小细节了。谢谢大家捧场！</p>
<p><strong>2009.11.11更新：增加鼠标中间点击链接的事件捕获处理。</strong>(顺便祝广大光棍朋友早日“脱光”！)<br />
当你用鼠标中键新窗口打开链接的时候还是会触发事件，导致文字变成“Loading&#8230;”，那么我们就要对鼠标的事件进行处理了，处理的代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">which</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
              <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
              $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading...'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#clickload'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>2009.11.22更新：页面由window.location打开。</strong><br />
不知道为什么，在IE和Opera中用jquery的click(fn)函数，会丢失默认的事件也就是只执行了click(fn)函数里面写的事件，而默认的打开页面的事件丢失了，Firefox和Chrome都是正常的。不知道是不是jQuery函数的问题，往知情者告知哈。现在的解决方案代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">which</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
              <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
              $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading...'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#clickload'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              window.<span style="color: #660066;">location</span> <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/jquery-changes-link-text/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>用 jQuery 制作模拟下拉框，改变你的下拉框样式</title>
		<link>http://leeiio.me/jquery-select-option/</link>
		<comments>http://leeiio.me/jquery-select-option/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 06:55:35 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Select]]></category>
		<category><![CDATA[下拉框样式]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1284</guid>
		<description><![CDATA[传统的 Select 下拉框因为样式丑陋且无法随性更改样式而遭到了我的鄙夷，相信很多人都有此种观点。并且在ie6下，下拉框的优先级大于层，经常导致下拉框显示在层的上面。但是自从有了 Javascript，这些问题便不再是问题。最近正好在改版一个网站，要修改下拉框的样式，正好看到 CssRain 已经制作了这么一个很有用的插件，下面我就教大家怎么用 jQuery 制作一个模拟下拉框，从而实现对 Select 下拉框样式的定制。 思路： 通过已知的下拉框，把里面的数据循环出来，放到另一个div的ul列表里， 另一个div就是简单的弹出层而已。 通过hidden可以 获取下拉框的选中的值和文本 。 先看这段代码： &#60;script type=&#34;text/javascript&#34;&#62; /* Dev by CssRain.cn Test in IE6,IE7,Firefox3,Chrome 感谢 CssRain的这段插件代码 */ jQuery.fn.CRselectBox = jQuery.fn.sBox = function&#40;options&#41;&#123; options = $.extend&#40;&#123; animated : false &#8230; <a href="http://leeiio.me/jquery-select-option/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2009/04/20090417-jquery_select.gif" alt="用 jQuery 制作模拟下拉框" /><br />
传统的 Select 下拉框因为样式丑陋且无法随性更改样式而遭到了我的鄙夷，相信很多人都有此种观点。并且在ie6下，下拉框的优先级大于层，经常导致下拉框显示在层的上面。但是自从有了 Javascript，这些问题便不再是问题。最近正好在改版一个网站，要修改下拉框的样式，正好看到 CssRain 已经制作了这么一个很有用的插件，下面我就教大家怎么用 jQuery 制作一个模拟下拉框，从而实现对 Select 下拉框样式的定制。<br />
<span id="more-1284"></span><br />
<strong>思路：<br />
通过已知的下拉框，把里面的数据循环出来，放到另一个div的ul列表里，<br />
另一个div就是简单的弹出层而已。<br />
通过hidden可以 获取下拉框的选中的值和文本 。</strong></p>
<p>先看这段代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #006600; font-style: italic;">/* 
Dev by CssRain.cn 
Test in IE6,IE7,Firefox3,Chrome
感谢 CssRain的这段插件代码
*/</span>
jQuery.<span style="color: #660066;">fn</span>.<span style="color: #660066;">CRselectBox</span> <span style="color: #339933;">=</span> jQuery.<span style="color: #660066;">fn</span>.<span style="color: #660066;">sBox</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	options <span style="color: #339933;">=</span> $.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		animated <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>options<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> _self <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span>
	<span style="color: #009966; font-style: italic;">/*构建结构*/</span>
	<span style="color: #003366; font-weight: bold;">var</span> _parent <span style="color: #339933;">=</span> _self.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> wrapHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;div class=&quot;CRselectBox&quot;&gt;&lt;/div&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> $wrapHtml <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>_parent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> selectedOptionValue <span style="color: #339933;">=</span> _self.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;option:selected&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> selectedOptionTxt <span style="color: #339933;">=</span> _self.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;option:selected&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> <span style="color: #000066;">name</span> <span style="color: #339933;">=</span> _self.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> id <span style="color: #339933;">=</span> _self.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> inputHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;input type=&quot;hidden&quot; value=&quot;'</span><span style="color: #339933;">+</span>selectedOptionValue<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; name=&quot;'</span><span style="color: #339933;">+</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; id=&quot;'</span><span style="color: #339933;">+</span>id<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;/&gt;'</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span>inputHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$wrapHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> inputTxtHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;input type=&quot;hidden&quot; value=&quot;'</span><span style="color: #339933;">+</span>selectedOptionTxt<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; name=&quot;'</span><span style="color: #339933;">+</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'_CRtext&quot; id=&quot;'</span><span style="color: #339933;">+</span>id<span style="color: #339933;">+</span><span style="color: #3366CC;">'_CRtext&quot;/&gt;'</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span>inputTxtHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$wrapHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> aHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;a class=&quot;CRselectValue&quot; href=&quot;#&quot;&gt;'</span><span style="color: #339933;">+</span>selectedOptionTxt<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/a&gt;'</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span>aHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$wrapHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> ulHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;ul class=&quot;CRselectBoxOptions&quot;&gt;&lt;/ul&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> $ulHtml <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>ulHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$wrapHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> liHtml <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	_self.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;option&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			liHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'&lt;li class=&quot;CRselectBoxItem&quot;&gt;&lt;a href=&quot;#&quot; class=&quot;selected&quot; rel=&quot;'</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;'</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/a&gt;&lt;/li&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			liHtml <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'&lt;li class=&quot;CRselectBoxItem&quot;&gt;&lt;a href=&quot;#&quot; rel=&quot;'</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;'</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/a&gt;&lt;/li&gt;'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span>liHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$ulHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009966; font-style: italic;">/*添加效果*/</span>
	$<span style="color: #009900;">&#40;</span> $wrapHtml<span style="color: #339933;">,</span> _parent<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hover</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;CRselectBoxHover&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;CRselectBoxHover&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectValue&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #000066; font-weight: bold;">is</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;:hidden&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>options.<span style="color: #660066;">animated</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fast&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fast&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxItem a&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> value <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;rel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> txt <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">+</span>id<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">+</span>id<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_CRtext&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>txt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectValue&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span>txt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxItem a&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>options.<span style="color: #660066;">animated</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fast&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> $<span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">target</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;class&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">&quot;CRselectBox&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>options.<span style="color: #660066;">animated</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fast&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.CRselectBoxOptions&quot;</span><span style="color: #339933;">,</span>$wrapHtml<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	_self.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</span> _self<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>当然既然是 jQuery 实现的，自然别忘了载入 jQuery 的库哦！<br />
-<a href="http://www.cssrain.cn/article.asp?id=1323" rel="nofollow" class="broken_link">Via</a></p>
<p>至于怎么用呢，看下面这段代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#abc&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">CRselectBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #006600; font-style: italic;">//#abc 为你的下拉框select的ID</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>只要给你的下拉框 Select 一个 ID 值即可，其余的就交给上述的 jQuery 插件了。</p>
<p>CSS部分自行定义：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.CRselectBox</span> <span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBoxHover</span> <span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBox</span> a<span style="color: #6666ff;">.CRselectValue</span> <span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBoxOptions</span> <span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBoxOptions</span> a<span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBoxOptions</span> a<span style="color: #3333ff;">:hover</span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBoxOptions</span> a<span style="color: #6666ff;">.selected</span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #808080; font-style: italic;">/* 解决 firefox 点击放大出现虚线框，从而导致滚动条的问题  */</span>
<span style="color: #6666ff;">.CRselectBox</span> a <span style="color: #00AA00;">&#123;</span> 
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.CRselectBox</span> a<span style="color: #3333ff;">:focus </span><span style="color: #00AA00;">&#123;</span> 
	<span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p><p class="preview left"><a href="http://leeiio.me/demo/3-jquery-select/" title="查看演示">View Demo
<em title="用 jQuery 制作模拟下拉框">jQuery Select</em></a></p> <p class="download left"><a class="downloadlink" href="http://leeiio.me/wp-content/plugins/download-monitor/download.php?id=3" title="用 jQuery 制作模拟下拉框,共被下载1853次,最后更新时间：2009-04-17" >ZIP File<em title="Total Downloads:1853">34.45 kB 共被下载1853次</em></a></p><p class="clear"></p></p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/jquery-select-option/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>升级版！Cookies 记录你的 WordPress 侧边栏关闭/显示的状态</title>
		<link>http://leeiio.me/cookies-wordpress-sidebar/</link>
		<comments>http://leeiio.me/cookies-wordpress-sidebar/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 13:24:29 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Wordpress Plugins]]></category>
		<category><![CDATA[侧边栏]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1138</guid>
		<description><![CDATA[之前写过的《关闭/显示你的 WordPress 侧边栏，享受阅读快感》，当时并没有考虑到 Cookies 记录状态栏被改变后的状态问题，实在是我的不专业。总不能让用户不厌其烦的点击关闭/显示侧边栏吧。体验很不好！所以抽空对其进行了修改，让其可以根据 Cookies 来记录你的 WordPress 侧边栏的状态是关闭的还是显示的。 在本篇教程的开始之前，先感谢下 PhilNa 兄的帮助，让我解决了 Cookies 保存路径的问题，这样的话不管在哪个内页设置侧边栏的状态，Cookies 都将保存到根路径 &#8220;/&#8221;。 因为之前写过很详细的关闭/显示 你的 WordPress 侧边栏的教程了，所以请搭配前文观看。 如果你对之前的那篇文章没有理解上的困难的话，那么就开始我们的升级版之旅吧！ 1.js的更新，使用这段js代码： &#60;script type=&#34;text/javascript&#34; language=&#34;javascript&#34;&#62; $&#40;document&#41;.ready&#40;function&#40;&#41;&#123; //SetCookies &#40;function&#40;&#41;&#123; function SetCookie&#40;c_name,value,expiredays&#41;&#123; var exdate=new Date&#40;&#41;; exdate.setDate&#40;exdate.getDate&#40;&#41;+expiredays&#41;; document.cookie=c_name+&#34;=&#34;+escape&#40;value&#41;+&#40;&#40;expiredays==null&#41;?&#34;&#34;:&#34;;expires=&#34;+exdate.toGMTString&#40;&#41;&#41;+&#34;;path=/&#34;; //如果你希望每个页面都有个独立的 Cookies 设置的话请去掉+&#34;;path=/&#34;，这样的话leeiio.me/xxx/ 和leeiio.me/yyy/ 的侧边栏状态都将是独立的 &#8230; <a href="http://leeiio.me/cookies-wordpress-sidebar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2009/04/20090401_closeshowsidebar.gif" alt="升级版！Cookies 记录你的 WordPress 侧边栏关闭/显示的状态" /><br />
之前写过的<a href="http://leeiio.me/show-close-sidebar-wordpress/">《关闭/显示你的 WordPress 侧边栏，享受阅读快感》</a>，当时并没有考虑到 Cookies 记录状态栏被改变后的状态问题，实在是我的不专业。总不能让用户不厌其烦的点击关闭/显示侧边栏吧。体验很不好！所以抽空对其进行了修改，让其可以根据 Cookies 来记录你的 WordPress 侧边栏的状态是关闭的还是显示的。<br />
<span id="more-1138"></span><br />
在本篇教程的开始之前，先感谢下 <a rel="nofollow" href="http://philna.com/">PhilNa</a> 兄的帮助，让我解决了 Cookies 保存路径的问题，这样的话不管在哪个内页设置侧边栏的状态，Cookies 都将保存到根路径 &#8220;/&#8221;。</p>
<p>因为之前写过很详细的<strong>关闭/显示 你的 WordPress 侧边栏</strong>的教程了，所以请搭配<a href="http://leeiio.me/show-close-sidebar-wordpress/">前文</a>观看。</p>
<p><strong>如果你对之前的那篇文章没有理解上的困难的话，那么就开始我们的升级版之旅吧！</strong></p>
<p><strong>1.js的更新，使用这段js代码：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">//SetCookies </span>
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">function</span> SetCookie<span style="color: #009900;">&#40;</span>c_name<span style="color: #339933;">,</span>value<span style="color: #339933;">,</span>expiredays<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> exdate<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
exdate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>exdate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>expiredays<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">cookie</span><span style="color: #339933;">=</span>c_name<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=&quot;</span><span style="color: #339933;">+</span>escape<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>expiredays<span style="color: #339933;">==</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;;expires=&quot;</span><span style="color: #339933;">+</span>exdate.<span style="color: #660066;">toGMTString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;;path=/&quot;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">//如果你希望每个页面都有个独立的 Cookies 设置的话请去掉+&quot;;path=/&quot;，这样的话leeiio.me/xxx/ 和leeiio.me/yyy/ 的侧边栏状态都将是独立的           </span>
<span style="color: #009900;">&#125;</span>
window<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'RootCookies'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
window<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'RootCookies'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'SetCookie'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> SetCookie<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//JavaScript 的命名空间，假使你已有一个 SetCookie 的函数的话将不会与之冲突，通过 RootCookie.SetCookie() 调用</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Toggle Sidebar</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
   RootCookies.<span style="color: #660066;">SetCookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'show_sidebar'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'no'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #006600; font-style: italic;">//设置一个名为show_sidebar的cookie,值为no,保存天数为1</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                           <span style="color: #006600; font-style: italic;">//隐藏&quot;关闭侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                          <span style="color: #006600; font-style: italic;">//显示&quot;显示侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>width<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;910px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
   RootCookies.<span style="color: #660066;">SetCookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'show_sidebar'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'no'</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>       
   <span style="color: #006600; font-style: italic;">//设置一个名为show_sidebar的cookie,值为no,保存天数为-1,也就是说让cookies失效,也就是删除这个cookie</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                             <span style="color: #006600; font-style: italic;">//隐藏&quot;显示侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                            <span style="color: #006600; font-style: italic;">//显示&quot;关闭侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>width<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;690px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>opacity<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slow'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p><strong>2.插入控制按钮</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'show_sidebar'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'no'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>      //当Cookie为show_sidebar的值为0的时候
&lt;li class=&quot;close-sidebar&quot; title=&quot;关闭侧边栏&quot;&gt;关闭侧边栏&lt;/li&gt;
&lt;li class=&quot;show-sidebar&quot; style=&quot;display:none;&quot; title=&quot;显示侧边栏&quot;&gt;显示侧边栏&lt;/li&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">else</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>                                                      
&lt;li class=&quot;close-sidebar&quot; style=&quot;display:none;&quot; title=&quot;关闭侧边栏&quot;&gt;关闭侧边栏&lt;/li&gt;
&lt;li class=&quot;show-sidebar&quot; title=&quot;显示侧边栏&quot;&gt;显示侧边栏&lt;/li&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>将这段代码插入你模板中需要显示功能按钮的地方即可！</p>
<p><strong>3.设置css，当侧边栏不显示的时候，让正文区域宽度增大，侧边栏不显示</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'show_sidebar'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'no'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>   
//当Cookie为show_sidebar的值为no的时候，载入一下的两个css
&lt;style type=&quot;text/css&quot;&gt;
#content {width:910px;}                             
//让主题部分的宽度为910px，请参照自己的blog进行调整
.sidebar {display:none;}                               
//让侧边栏不显示
&lt;/style&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>将以上这段代码插入index.php以及single.php以及page.php页面，如果你还有别的页面的话，同理插入这段代码！</p>
<p><em>如果你不想让自己的模板文件插入这些css的话，第3步还可以这样写。将第1步的js修改为如下</em></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">//SetCookies </span>
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">function</span> SetCookie<span style="color: #009900;">&#40;</span>c_name<span style="color: #339933;">,</span>value<span style="color: #339933;">,</span>expiredays<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> exdate<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
exdate.<span style="color: #660066;">setDate</span><span style="color: #009900;">&#40;</span>exdate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>expiredays<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">cookie</span><span style="color: #339933;">=</span>c_name<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=&quot;</span><span style="color: #339933;">+</span>escape<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>expiredays<span style="color: #339933;">==</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;;expires=&quot;</span><span style="color: #339933;">+</span>exdate.<span style="color: #660066;">toGMTString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;;path=/&quot;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">//如果你希望每个页面都有个独立的 Cookies 设置的话请去掉+&quot;;path=/&quot;，这样的话leeiio.me/xxx/ 和leeiio.me/yyy/ 的侧边栏状态都将是独立的           </span>
<span style="color: #009900;">&#125;</span>
window<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'RootCookies'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
window<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'RootCookies'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'SetCookie'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> SetCookie<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//JavaScript 的命名空间，假使你已有一个 SetCookie 的函数的话将不会与之冲突，通过 RootCookie.SetCookie() 调用</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Toggle Sidebar</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
   RootCookies.<span style="color: #660066;">SetCookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'show_sidebar'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'no'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #006600; font-style: italic;">//设置一个名为show_sidebar的cookie,值为no,保存天数为1</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                           <span style="color: #006600; font-style: italic;">//隐藏&quot;关闭侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                          <span style="color: #006600; font-style: italic;">//显示&quot;显示侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>width<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;910px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
   RootCookies.<span style="color: #660066;">SetCookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'show_sidebar'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'no'</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>       
   <span style="color: #006600; font-style: italic;">//设置一个名为show_sidebar的cookie,值为no,保存天数为-1,也就是说让cookies失效,也就是删除这个cookie</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                             <span style="color: #006600; font-style: italic;">//隐藏&quot;显示侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                            <span style="color: #006600; font-style: italic;">//显示&quot;关闭侧边栏&quot;按钮</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>width<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;690px&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>opacity<span style="color: #339933;">:</span> <span style="color: #CC0000;">1.0</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slow'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">//与第1步不同的地方开始，以下是区别与第一步js的新增代码</span>
<span style="color: #006600; font-style: italic;">//Get cookies Value  获取cookies的值</span>
<span style="color: #003366; font-weight: bold;">var</span> cookies <span style="color: #339933;">=</span> document.<span style="color: #660066;">cookie</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">function</span> GetCookieValue<span style="color: #009900;">&#40;</span>cookieName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> ret <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> cookies.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> leeiiocookies <span style="color: #339933;">=</span> cookies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cookieName <span style="color: #339933;">==</span> leeiiocookies<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            ret <span style="color: #339933;">=</span> unescape<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">decodeURI</span><span style="color: #009900;">&#40;</span>leeiiocookies<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> ret
<span style="color: #009900;">&#125;</span>
<span style="color: #006600; font-style: italic;">//判断cookies的值</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'no'</span> <span style="color: #339933;">==</span> GetCookieValue<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'show_sidebar'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">'width'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'910px'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
    <span style="color: #006600; font-style: italic;">//让正文区域的宽度设置为910px,也就是隐藏sidebar之后的可使宽度,你也可以修改为关闭侧边栏时候的动态效果</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">//让侧边栏隐藏</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>不过我还是推荐将 css 写入模板文件，因为这样通过 php 判断的话，用户看到的直接就是侧边栏已经消失了且正文宽度增大后的效果，通过 js 的话在 js 未载入完全之前页面还是先前的样子，然后侧边栏才会消失，正文也会变宽。</p>
<p><strong>大功告成！代码里面加了很详细的注释了，没加注释的在前篇也都已经注释并解释过，怎么样，很 easy 吧！如果你耐心地看完了本文的话，确实是很 easy 的！jQuery 真简便啊真简便！</strong></p>
<p>谢谢观赏！</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/cookies-wordpress-sidebar/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>关闭/显示你的 WordPress 侧边栏，享受阅读快感</title>
		<link>http://leeiio.me/show-close-sidebar-wordpress/</link>
		<comments>http://leeiio.me/show-close-sidebar-wordpress/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 04:19:43 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Wordpress Plugins]]></category>
		<category><![CDATA[侧边栏]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1084</guid>
		<description><![CDATA[用 jQuery 实现关闭/显示你的 Wordpress 侧边栏的功能，当然，前提还得是你的部落格载入了 jQuery 库，推荐你使用 Google Ajax Library 的 jQuery 调用地址。首先在你的网页中你想要显示 关闭/显示侧边栏 的提示按钮或者文字，接着就是 jQuery 功能代码部分了。 <a href="http://leeiio.me/show-close-sidebar-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.guaniu.com/blogpics/month_0903/20090305_closeshowsidebar.gif" alt="关闭/显示你的 WordPress 侧边栏，享受阅读快感" title="关闭/显示你的 WordPress 侧边栏，享受阅读快感" /><br />
最近很忙，所以也就没时间博了，连好友的 Twitter 都鲜有 @，Google Reader 都有3000+ 的未读了，实在是罪过罪过。今早上班，瞅着博客突然想到以前用 Bo-Blog 以及 PjBlog 的时候，发现他们都是有关闭/显示侧边栏的功能的，那时候 jQuery 还不流行。于是我想，给自己现在的 Blog 加上这么个功能那将是比较酷的，除此之外，因为隐藏掉了侧边栏，主体内容区域就变大了，浏览文章特别是图片很多的摄影作品欣赏类的文章的时候，那将会带来不错的阅读快感，至少我是这么觉得的。当然，好东西要分享，那么大家请跟着我以下的描述来一起动手吧。<br />
<span id="more-1084"></span><br />
<strong>当然，前提还得是你的部落格载入了 jQuery 库，推荐你使用 <a href="http://leeiio.me/google-cdn-host-ajax-library-jquery/"><strong>Google Ajax Library</strong></a> 的 jQuery 调用地址。</strong></p>
<p>首先在你的网页中你想要显示 关闭/显示侧边栏 的提示按钮或者文字，我这里就举个简单的例子，比如在你的 WordPress 模板中插入</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;show-close-sidebar&quot;</span>&gt;</span>关闭/显示 侧边栏<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></pre></div></div>

<p>接着就是 jQuery 功能代码部分了，请先看以下这段代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.show-close-sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggle</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fast&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #006600; font-style: italic;">//让侧边栏快速渐隐掉</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		width<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;915px&quot;</span>             <span style="color: #006600; font-style: italic;">//让正文主体部分宽度增加到915px</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                            <span style="color: #006600; font-style: italic;">//执行时间是1000毫秒</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
<span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#content'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		width<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;700px&quot;</span>              <span style="color: #006600; font-style: italic;">//让正文主体部分宽度收缩到700px</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                             <span style="color: #006600; font-style: italic;">//执行时间是1000毫秒</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.sidebar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #006600; font-style: italic;">//让侧边栏渐渐隐现回来，执行时间为5000毫秒</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>是吧，代码非常的简单，并且我做了代码格式化，大家看起来结构比较清晰点。然后我稍作讲解。</p>
<p>这里使用了 jQuery 中的 <strong>toggle() ，fadeIn() ，fadeOut() ，animate()</strong> 这四个函数，API参考文档可以看这个<a href="http://jquery-api-zh-cn.googlecode.com/svn/trunk/index.html" rel="external nofollow"> jQuery API 参考文档在线中文版</a>，也可以去 <a href="http://docs.jquery.com/Main_Page" rel="external nofollow">jQuery 官方文档</a>看。</p>
<blockquote><p>
以上的功能代码用中文表述的意思就是当 class 为 show-close-sidebar 的元素被点击的时候，执行 toggle 函数，toggle 函数里面有两个 function ()，之所以有两个是因为要让那个被点击的元素点击第一次和第二次的时候执行不同的功能，不然你看如果把侧边栏给关了，不就无法恢复了么，您说是不是？在第一个 function () 函数里面，我先让 class 为 sidebar 的元素(就是我的侧边栏，你的侧边栏是什么 class 就替换成什么)渐隐掉，然后让 ID 为 #content 的运行 animate() 函数，animate()函数里面就是让那个 ID 为 #content 的元素宽度增加到 915px，也就是让你的正文区域扩大宽度，这不侧边栏不是被隐藏了么，当然要把正文区域增宽回来。1000 是执行的时间，单位是毫秒，你自行控制。下一个 function () 函数无非就是倒过来写，先执行让 #content 缩小然后再出现侧边栏，这样效果看起来比较自然，不然一开始侧边栏重新显示出来的时候被 #content 给遮挡了，然后#content再收缩回原来的宽度的时候，你就看不到侧边栏显示出来的那种效果了。</p></blockquote>
<p><strong>演示见本站顶部导航 Show/Close Sidebar。</strong></p>
<p><strong>我想这样的中文解释不知道是否给你们带来了更大的困惑，如果有不明白的就给我留言，我会一一解答。</strong></p>
<p>当然，要想实现本站收缩的时候的那种抖动效果，你可以调用 <a href="http://gsgd.co.uk/sandbox/jquery/easing/" rel="external nofollow">Easing</a> 插件。</p>
<p>jQuery 库真是个易用且庞大的 javascript 库，当然我这些都是皮毛技巧，总是想要实现什么效果了然后去 API 文档看看都有哪些效果然后再写代码，这样很不好，导致的后果就是有可能有更好的办法可以不用这么麻烦的<strong>功能函数</strong>而用一些简单的函数就能实现效果。所以我准备系统地去研究学习下 jQuery，毕竟我连 Javascript 也不会，总是这么折腾也不是个事儿，总得让自己专业点，你说是不是。</p>
<p><strong>请大家继续关注本部落格，也可以 Follow <a href="https://twitter.com/leeiio/" rel="external nofollow">我的 Twitter</a>，稍候我可能要放送 jQuery 的入门系列文章了，有兴趣地欢迎和我一起学习 jQuery。谢谢观赏！</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/show-close-sidebar-wordpress/feed/</wfw:commentRss>
		<slash:comments>81</slash:comments>
		</item>
		<item>
		<title>用 jQuery 實現的 WordPress 標註作者的最後評論回覆</title>
		<link>http://leeiio.me/jquery-last-by-author/</link>
		<comments>http://leeiio.me/jquery-last-by-author/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 02:59:52 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[My Works]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Wordpress Plugins]]></category>
		<category><![CDATA[標註作者最後評論]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=963</guid>
		<description><![CDATA[小把戲，並且這標題有點拗口，我很擔心你們看到標題就已經暈了，不過實現這個效果的方法倒是挺簡單的。 靈感來自牛逼的 Shawn，他博客上面的他自己的評論都是在左側加了空心的星星，但是他的最後回覆則是綠色的星星，這樣給訪客的感覺就是作者只回覆到了這裡，或者換種理解的意思就是“已閱到這個評論”，有點類似論壇裡面可能常看到的“已閱至此樓”的插件功能。當然你也可能會覺得這個功能無足輕重，但是我覺得還是挺有意思的，可以讓訪客知道作者有多久沒來過了，因為一般來說，看到自己的博客有人評論的話肯定會先回覆的吧。 本人的 jQuery 也都是些皮毛功夫，代碼寫得不好也見笑了，歡迎批評指正。 如果還不是很明白這個功能所表達的意思的話，你可以先看看下面這個截圖。 就如截圖種的這樣，只是給某篇日誌該作者的最後評論回覆加一個標註，可以是一個圖片也可以是一些提醒文字，本文講的是用圖片來標註的。請接著往下看。 準備工作： 首先得確定你的主題中評論頁面裡面，作者的評論和訪客的評論是否具有不同的樣式，比如我的評論區域訪客的 class=&#8221;comments&#8221;，而作者的評論樣式是 class=&#8221;comments&#8221;，不然下文就不能判斷並篩選出作者的評論了。如果發現自己的主題並沒有這樣的設計，那麽你可以 google 下怎麽設計這個功能代碼，或者可以參考我提供給你的方法。 區分作者評論和訪客評論的樣式方法： 打開 comments.php 頁面，在任意処加入以下代碼(必須在評論輸出的代碼片段之前)，比如我的每一個評論都是用 li 標簽來包裹的，那麽你可以選擇加在以下代碼之前 1 &#60;li class=&#34;&#60;?php echo $oddcomment; ?&#62; comments ?&#62;&#34; id=&#34;comment-&#60;?php comment_ID&#40;&#41; ?&#62;&#34;&#62; 修改後的代碼 1 2 3 4 5 6 7 &#60;?php &#8230; <a href="http://leeiio.me/jquery-last-by-author/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>小把戲，並且這標題有點拗口，我很擔心你們看到標題就已經暈了，不過實現這個效果的方法倒是挺簡單的。</p>
<p>靈感來自牛逼的 <a href="http://ishawn.net" rel="nofollow">Shawn</a>，他博客上面的他自己的評論都是在左側加了空心的星星，但是他的最後回覆則是綠色的星星，這樣給訪客的感覺就是作者只回覆到了這裡，或者換種理解的意思就是“已閱到這個評論”，有點類似論壇裡面可能常看到的“已閱至此樓”的插件功能。當然你也可能會覺得這個功能無足輕重，但是我覺得還是挺有意思的，可以讓訪客知道作者有多久沒來過了，因為一般來說，看到自己的博客有人評論的話肯定會先回覆的吧。</p>
<p><strong>本人的 jQuery 也都是些皮毛功夫，代碼寫得不好也見笑了，歡迎批評指正。</strong></p>
<p>如果還不是很明白這個功能所表達的意思的話，你可以先看看下面這個截圖。<br />
<span id="more-963"></span><br />
<img class="imgborder" src="http://imgs.guaniu.com/blogpics/month_0902/20090218_lastbyauthor.gif" alt="用 jQuery 實現的 WordPress 標註作者的最後評論回覆" title="用 jQuery 實現的 WordPress 標註作者的最後評論回覆" /></p>
<p>就如截圖種的這樣，只是給某篇日誌該作者的最後評論回覆加一個標註，可以是一個圖片也可以是一些提醒文字，本文講的是用圖片來標註的。請接著往下看。</p>
<p><strong>準備工作：</strong></p>
<blockquote><p>
首先得確定你的主題中評論頁面裡面，作者的評論和訪客的評論是否具有不同的樣式，比如我的評論區域訪客的 <em>class=&#8221;comments&#8221;</em>，而作者的評論樣式是 <em>class=&#8221;comments&#8221;</em>，不然下文就不能判斷並篩選出作者的評論了。如果發現自己的主題並沒有這樣的設計，那麽你可以 google 下怎麽設計這個功能代碼，或者可以參考我提供給你的方法。
</p></blockquote>
<p><strong>區分作者評論和訪客評論的樣式方法：</strong><br />
打開 comments.php 頁面，在任意処加入以下代碼(必須在評論輸出的代碼片段之前)，比如我的每一個評論都是用 li 標簽來包裹的，那麽你可以選擇加在以下代碼之前</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&lt;li class=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$oddcomment</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> comments ?&gt;&quot; id=&quot;comment-<span style="color: #000000; font-weight: bold;">&lt;?php</span> comment_ID<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;</pre></td></tr></table></div>

<p>修改後的代碼</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #000088;">$isByAuthor</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author_email</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'xxxxxx@gmail.com'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$isByAuthor</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;li class=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$oddcomment</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> comments<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$isByAuthor</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;-author&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; id=&quot;comment-<span style="color: #000000; font-weight: bold;">&lt;?php</span> comment_ID<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;</pre></td></tr></table></div>

<p>將上面的代碼中的email地址修改為你自己的 email，代碼的作用就是判斷你填寫的 email 來區別你的評論與訪客的評論。</p>
<p><strong>完成了以上的準備工作之後下面就開始進入本文的重點了。請看以下這段代碼：</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> lastbyauthor <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ol.thecomments'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.comments-author:last'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span>lastbyauthor<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;background&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;#FAFAFA url(images/lastbyauthor.png) right 10px no-repeat&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'name'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'lastbyauthor'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div.commentcount a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>title<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;作者最後的評論回覆&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>將以上的代碼加入到你模板文件的 </head>  或者 </body> 之前即可，當然你也可以加入到自己的 js文件裏。</p>
<p>我大致講解下這段 jQuery 代碼，我這裏定義一個變量 lastbyauthor，<em>$(&#8216;ol.thecomments&#8217;)</em> 就是你的評論顯示區域的外面所包裹的標記，大部分主題都是用 ol 標記的，然後在這段 ol 所包裹著的代碼中用 find() 函數查找出最後的一個 樣式為 <em>class=&#8221;comments-author&#8221;</em> 的那段評論。然後對這段評論的樣式進行特殊的 css。懂的人可能看出來了我這裏還定義了一個 name 屬性，名字為 lastbyauthor，這是為了給作者最後的評論添加錨標簽用的，不用 id 是因為每一個評論都已經擁有一個數據庫生成的評述數了。</p>
<p><strong>比如你可以在評論模板的任何地方添加以下代碼：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">追蹤作者<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#lastbyauthor&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;color:red&quot;</span>&gt;</span>最後的軌跡<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>!</pre></div></div>

<p><strong>效果：</strong>點擊後面的紅色文字追蹤作者<a href="#lastbyauthor" style="color:red">最後的軌跡</a>!</p>
<p>當然，你還需要準備一張類似如下的醒目提醒圖片：<img src="http://leeiio.me/wp-content/themes/light-colorful/images/lastbyauthor.png" alt="last by author" /></p>
<p><strong>是不是覺得很簡單。不知道對於新手的話我說得是不是夠詳細了，如果還有不明白的可以給我回復，我都將一一耐心講解回復，謝謝惠顧！</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/jquery-last-by-author/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>使用 Google CDN Host 的 Javascript Library 且升級到 jQuery 1.3.1</title>
		<link>http://leeiio.me/google-cdn-host-ajax-library-jquery/</link>
		<comments>http://leeiio.me/google-cdn-host-ajax-library-jquery/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 05:54:27 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[JS/Ajax/AS/Flex]]></category>
		<category><![CDATA[Google CDN Host]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=918</guid>
		<description><![CDATA[雖然這個已經不算是什麼新聞了，我相信很多人都已經在使用 Google CDN Host 的 Ajax Library。 使用 Google CDN Host 的好處很多，Google APIs 提供的 GZip 過的 Min 版，只有 18k，對用戶來說下載量更小，對一些不支持 Gzip 的把 jQuery Library 放在本地服務器的用戶來說無意是個福音，況且 Google 這樣的公司我想不是那麼容易當機的，穩定性是可以有保障的，透過他的 CDN(Content Delivery Network), 讓全球抓取此 Library 的速度都跟抓當地網站檔案一樣快。(更多好處可見 shawphy) 目前 Google Host 的 AJAX Library 有: &#8230; <a href="http://leeiio.me/google-cdn-host-ajax-library-jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>雖然這個已經不算是什麼新聞了，我相信很多人都已經在使用 Google CDN Host 的 Ajax Library。<br />
使用 Google CDN Host 的好處很多，Google APIs 提供的 GZip 過的 Min 版，只有 18k，對用戶來說下載量更小，對一些不支持 Gzip 的把 jQuery Library 放在本地服務器的用戶來說無意是個福音，況且 Google 這樣的公司我想不是那麼容易當機的，穩定性是可以有保障的，透過他的 CDN(<a title="Content Delivery Network - CDN" rel="nofollow" href="http://en.wikipedia.org/wiki/Content_Delivery_Network" target="_blank">Content Delivery Network</a>), 讓全球抓取此 Library 的速度都跟抓當地網站檔案一樣快。(更多好處可見 <a rel="nofollow" href="http://shawphy.com/2009/01/jquery-1-3-upgrade-guide.html">shawphy</a>)</p>
<p>目前 Google Host 的 AJAX Library 有: <a title="jQuery: The Write Less, Do More, JavaScript Library" rel="nofollow" href="http://jquery.com/" target="_blank">jQuery</a>, <a title="jQuery UI - Home" rel="nofollow" href="http://ui.jquery.com/" target="_blank">jQuery UI</a>, <a title="Prototype JavaScript framework: Easy Ajax and DOM manipulation for dynamic web applications" rel="nofollow" href="http://www.prototypejs.org/" target="_blank">Prototype</a>, <a title="script.aculo.us - web 2.0 javascript" rel="nofollow" href="http://script.aculo.us/" target="_blank">script.aculo.us</a>, <a title="MooTools - a compact javascript framework" rel="nofollow" href="http://mootools.net/" target="_blank">MooTools</a>, <a title="Home | The Dojo Toolkit" rel="nofollow" href="http://dojotoolkit.org/" target="_blank">Dojo</a>, <a title="Home" rel="nofollow" href="http://code.google.com/p/swfobject/" target="_blank">SWFObject</a>, <a title="Home | Yahoo! User Interface Library" rel="nofollow" href="http://developer.yahoo.com/yui/" target="_blank">YUI</a>。<br />
<span id="more-918"></span><br />
<strong>使用方法</strong></p>
<p>我只是用了 jQuery，所以我就拿 jQuery 的調用來說，其他可自行查看 Google 站點。</p>
<blockquote><p>
	官方主頁<a title="AJAX Libraries API - Google Code" href="http://code.google.com/apis/ajaxlibs/" target="_blank">: AJAX Libraries API &#8211; Google Code</a><br />
	各種 AJAX Library 的路徑整理及說明: <a title="Developer's Guide - AJAX Libraries API - Google Code " href="http://code.google.com/apis/ajaxlibs/documentation/index.html" target="_blank">Developer&#8217;s Guide &#8211; AJAX Libraries API &#8211; Google Code</a>
</p></blockquote>
<p><strong>靜態載入(本站使用):</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p><strong>動態載入</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://www.google.com/jsapi&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> language<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;javascript&quot;</span><span style="color: #339933;">&gt;</span>
google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;jquery&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1.3.1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>本站使用了 jQuery 的 Javascript Library 後，順便也把使用的之前的 1.2.6 版的升級到了最新的 1.3.1。這裡提醒大家一下，如果之前有使用 jQuery 版的 Lightbox 的童鞋們要註意了，因為 1.3 版之後的 jQuery 已經取消了屬性選擇器的 @ 前導符號，而之前的 Lightbox 的調用代碼</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a[@rel*=lightbox]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">lightBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>裏面含有 @ 符號，那麼請好不猶豫地刪除之 &#8220;@&#8221;，否則您的 jQuery 代碼將無法正常運作。(更多升級後的不同點可見 <a rel="nofollow" href="http://shawphy.com/2009/01/jquery-1-3-upgrade-guide.html">shawphy</a>)</p>
<p>最後，祝大家使用 Google CDN Host 的 Javascript Library 愉快，且升級 jQuery 1.3.1 愉快~</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/google-cdn-host-ajax-library-jquery/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

