<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.leeiio.me/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.leeiio.me" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/1studio" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 12 Mar 2010 08:20:39 GMT</lastBuildDate><title>Leeiio™ Chaos Made.</title><description>混沌制造。音乐，设计，摄影。</description><image><url>http://www.feedsky.com/feed/1studio/sc/gif</url><title>Leeiio™ Chaos Made.</title><link>http://leeiio.me</link></image><link>http://leeiio.me</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Fri, 12 Mar 2010 08:28:23 GMT</pubDate><item><title>在Google Code上用 Mercurial 取代 Subversion 管理你的项目</title><link>http://leeiio.me/googlecode-converting-svn-to-hg/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110535/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110535/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/03/20100312_googlecode-converting-svn-to-hg.png&quot; alt=&quot;在Google Code上用 Mercurial 取代 Subversion 管理你的项目&quot; /&gt;&lt;br /&gt;
之前，我一直都是用的SVN作为我日常的版本控制工具，诸如代码啊文档啊之类的东西。至于&lt;a rel=&quot;nofollow&quot; href=&quot;http://zh.wikipedia.org/zh-cn/協作版本系統&quot;&gt;CVS&lt;/a&gt;这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话，作为托管服务商比较好的就有google code，本人也一直在使用。最近，由于一些项目的原因，了解到了另外一个版本控制工具Hg，当然Hg不是它的原名，原名叫&lt;a rel=&quot;nofollow&quot; href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt;，都是水银的意思，所以通常称呼为Hg。&lt;br /&gt;
&lt;span id=&quot;more-1903&quot;&gt;&lt;/span&gt;&lt;br /&gt;
与集中式版本控制工具SVN不同的是，Hg是一种分布式版本控制工具。除了Hg，还有大名鼎鼎的&lt;a rel=&quot;nofollow&quot; href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt;也是分布式版本控制工具。想要更具体的了解版本控制工具的，推荐阅读胡凯《&lt;a href=&quot;http://www.infoq.com/cn/articles/thoughtworks-practice-partiv&quot; rel=&quot;nofollow&quot;&gt;为什么我们要放弃Subversion&lt;/a&gt;》，&lt;br /&gt;
风云《&lt;a href=&quot;http://blog.codingnow.com/2008/01/distributed_version_control.html&quot; rel=&quot;nofollow&quot;&gt;分 布式的版本控制工具&lt;/a&gt;》，猛禽《&lt;a href=&quot;http://blog.csdn.net/Raptor/archive/2008/02/29/2133797.aspx&quot; rel=&quot;nofollow&quot;&gt;分 布式版本控制（一）&lt;/a&gt;》 《&lt;a href=&quot;http://blog.csdn.net/Raptor/archive/2008/03/04/2145492.aspx&quot; rel=&quot;nofollow&quot;&gt;分 布式版本控制（二） &lt;/a&gt;》，Sparkle《&lt;a href=&quot;http://weavesky.com/2008/01/25/mercurial-and-me/&quot; rel=&quot;nofollow&quot;&gt;我 与Mercurial 系列等几篇文章&lt;/a&gt;》等。只是想了解Mercurial(Hg)的话，&lt;a href=&quot;http://mercurial.selenic.com/wiki/&quot; rel=&quot;nofollow&quot;&gt;Mercurial官方wiki&lt;/a&gt;已经有很详尽的资料和帮助文档了。&lt;/p&gt;
&lt;p&gt;接下来回到本文的正题。本文的起因是Google Code在早前除了支持SVN托管代码外，更支持了分布式版本控制Mercurial(Hg)来管理你托管在Google Code上的项目。至于Google为什么在这么多种的分布式版本控制工具中选择了Mercurial而不是Git，这里有一篇文章，推荐阅读一下&lt;a rel=&quot;nofollow&quot; href=&quot;http://blog.twpug.org/416&quot; rel=&quot;nofollow&quot;&gt;《Git 與 Mercurial 的分析》&lt;/a&gt;，原文&lt;a href=&quot;http://code.google.com/p/support/wiki/DVCSAnalysis&quot; rel=&quot;nofollow&quot;&gt;《Analysis of Git and Mercurial》&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;下面，就教大家怎么让Google Code用Mercurial替代Subversion来管理你的项目。&lt;/strong&gt;原文 http://code.google.com/p/support/wiki/ConvertingSvnToHg。&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;在Google Code里设置由Mercurial来管理项目&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;访问你已经存在的google code项目页面，选择 “Administer” 选项页,然后选择下级分类选项页 “Source”。 &lt;/li&gt;
&lt;li&gt;改变第一项Repository type为Mercurial。&lt;/li&gt;
&lt;li&gt;参照下文介绍的“如何转换Google Code里Subversion的历史记录到Mercurial中”，导入你的代码到 Hg 代码库中 &lt;/li&gt;
&lt;li&gt;以同样的导入代码的方式，导入你的wiki到Hg wiki库中。确认你使用的subversion代码库的wiki路径(例如 http://projectname.googlecode.com/svn/wiki) 以及 Hg 代码库的wiki路径(http://wiki.projectname.googlecode.com/hg/) &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在你切换你的项目使用Mercurial管理后，你的旧Subversion项目仍然可以访问，所以在你切换之前你不需要备份你的代码库。你的Subversion版本库将会保持访问: https://projectname.googlecode.com/svn/&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;如何转换Google Code里Subversion的历史记录到Mercurial中&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;第一种方式：简要截取&lt;/strong&gt;&lt;br /&gt;
如果你不在乎你原来项目的历史记录，那么你可以简单地从Subversion里的主干代码或者wiki中提取最新的代码然后放到你的Mercurial中。假设你googlecode里的 Mercurial代码库是空的，那么可以这样操作：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt; $ hg clone https:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;hg hg-client
 $ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; hg-client
 $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--force&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;trunk .
 $ hg add .
 $ hg commit &lt;span style=&quot;color: #660033;&quot;&gt;-m&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Initial import of source.&amp;quot;&lt;/span&gt;
 $ hg push&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;接着转换你的wiki：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt; $ hg clone https:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;wiki.projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;hg hg-client-wiki
 $ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; hg-client-wiki
 $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--force&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;wiki .
 $ hg add .
 $ hg commit &lt;span style=&quot;color: #660033;&quot;&gt;-m&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Initial import of wiki.&amp;quot;&lt;/span&gt;
 $ hg push&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;第二种方式：完整历史记录转换&lt;/strong&gt;&lt;br /&gt;
如果你要迁移你整个的历史记录，整个过程可能要你更多的参与了。你将会需要先安装一些特殊的工具程序。&lt;br /&gt;
&lt;strong&gt;安装工具&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#8216;hg convert&amp;#8217;扩展模块。最新版本的Mercurial已经包含这个模块，请确保你的hg版本为1.1 或者 1.2 或者更高版本。 (可用&amp;#8221;hg &amp;#8211;version&amp;#8221;命令查看) 然后在你的.hgrc里面添加如下代码启用该扩展模块:

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;c&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;extensions&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;
hgext.&lt;span style=&quot;color: #202020;&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;Subversion的swig-python绑定。请确保您有最近的Subversion安装（1.5或1.6）。绝大部分的Subversion衍生版本都有与python的绑定，或者提供他们额外的二进制包。你可以运行如下代码检查你的svn &amp;#8211; python的绑定是否正常：

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;$ python &lt;span style=&quot;color: #660033;&quot;&gt;-c&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;import svn.core; print svn.core.SVN_VER_MINOR&amp;quot;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;如果失败，或返回的版本低于5，则肯定是不对的。如果你没有二进制软件包，你可以从Subversion自己的源代码树中建立：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt; checkout http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;svn.collab.net&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;repos&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;svn&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;tags&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;1.6.0 &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt;
$ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt;
$ .&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;autogen.sh &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; .&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;configure
$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt;
$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;install&lt;/span&gt;
$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt; swig-py  &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# make sure you have swig 1.3 installed already&lt;/span&gt;
$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt; check-swig-py
$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt; install-swig-py&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;如果你在Ubuntu的Hardy版本，你可以在hardy-backports里找到1.5版的python-subversion: &lt;a href=&quot;http://packages.ubuntu.com/hardy-backports/python-subversion&quot; rel=&quot;nofollow&quot;&gt;http://packages.ubuntu.com/hardy-backports/python-subversion&lt;/a&gt;&lt;br /&gt;
这可能还需要安装backports里的libsvn1, subversion, mercurial-common, 和mercurial 包。
        &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;开始转换&lt;/strong&gt;&lt;br /&gt;
现在我们开始转换&amp;#8211; branches(分支), tags(标签)以及其他全部:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;$ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mkdir&lt;/span&gt; hg-client
$ hg convert http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;svn&lt;/span&gt; hg-client&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;一旦完成转换，你就可以push你最新的历史记录到你的Google Code项目中(前提是你有了一个空的Mercurial版本库):&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash&quot; style=&quot;font-family:monospace;&quot;&gt;$ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; hg-client
$ hg push https:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;projectname.googlecode.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;hg&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;至此，大功告成。&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/googlecode-converting-svn-to-hg/&quot;&gt;http://leeiio.me/googlecode-converting-svn-to-hg/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 2 &lt;/strong&gt;条,欢迎您也过来留下您的意见 !&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/bluehost-x86-64-subversion-svn/&quot; title=&quot;在 Bluehost 主机上安装 Subversion(SVN),支持 64 位主机&quot;&gt;在 Bluehost 主机上安装 Subversion(SVN),支持 64 位主机&lt;/a&gt; (9)&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110535/1studio/feedsky/s.gif?r=http://leeiio.me/googlecode-converting-svn-to-hg/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/googlecode-converting-svn-to-hg/feed/</wfw:commentRss><slash:comments>2</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110535/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110535/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;之前，我一直都是用的SVN作为我日常的版本控制工具，诸如代码啊文档啊之类的东西。至于CVS这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话，作为托管服务商比较好的就有google code，本人也一直在使用。最近，由于一些项目的原因，了解到了另外一个版本控制工具Hg，当然Hg不是它的原名，原名叫Mercurial，都是水银的意思，所以通常称呼为Hg。

与集中式版本控制工具SVN不同的是，Hg是一种分布式版本控制工具。除了Hg，还有大名鼎鼎的Git也是分布式版本控制工具。想要更具体的了解版本控制工具的，推荐阅读胡凯《为什么我们要放弃Subversion》，
风云《分 布式的版本控制工具》，猛禽《分 布式版本控制（一）》 《分 布式版本控制（二） 》，Sparkle《我 与Mercurial 系列等几篇文章》等。只是想了解Mercurial(Hg)的话，Mercurial官方wiki已经有很详尽的资料和帮助文档了。
接下来回到本文的正题。本文的起因是Google Code在早前除了支持SVN托管代码外，更支持了分布式版本控制Mercurial(Hg)来管理你托管在Google Code上的项目。至于Google为什么在这么多种的分布式版本控制工具中选择了Mercurial而不是Git，这里有一篇文章，推荐阅读一下《Git 與 Mercurial 的分析》，原文《Analysis of Git and Mercurial》。
下面，就教大家怎么让Google Code用Mercurial替代Subversion来管理你的项目。原文 http://code.google.com/p/support/wiki/ConvertingSvnToHg。
在Google Code里设置由Mercurial来管理项目

访问你已经存在的google code项目页面，选择 “Administer” 选项页,然后选择下级分类选项页 “Source”。 
改变第一项Repository type为Mercurial。
参照下文介绍的“如何转换Google Code里Subversion的历史记录到Mercurial中”，导入你的代码到 Hg 代码库中 
以同样的导入代码的方式，导入你的wiki到Hg wiki库中。确认你使用的subversion代码库的wiki路径(例如 http://projectname.googlecode.com/svn/wiki) 以及 Hg 代码库的wiki路径(http://wiki.projectname.googlecode.com/hg/) 

在你切换你的项目使用Mercurial管理后，你的旧Subversion项目仍然可以访问，所以在你切换之前你不需要备份你的代码库。你的Subversion版本库将会保持访问: https://projectname.googlecode.com/svn/
如何转换Google Code里Subversion的历史记录到Mercurial中
第一种方式：简要截取
如果你不在乎你原来项目的历史记录，那么你可以简单地从Subversion里的主干代码或者wiki中提取最新的代码然后放到你的Mercurial中。假设你googlecode里的 Mercurial代码库是空的，那么可以这样操作：

 $ hg clone https://projectname.googlecode.com/hg hg-client
 $ cd hg-client
 $ svn export --force http://projectname.googlecode.com/svn/trunk .
 $ [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110535/1studio/feedsky/s.gif?r=http://leeiio.me/googlecode-converting-svn-to-hg/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>Hg</category><category>設計資源</category><category>Subversion</category><category>Mercurial</category><category>Google Code</category><pubDate>Fri, 12 Mar 2010 16:20:39 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/googlecode-converting-svn-to-hg/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1903</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/googlecode-converting-svn-to-hg/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110535/4400837</fs:itemid></item><item><title>在Vim里玩Zen Coding</title><link>http://leeiio.me/zen-coding-in-vim/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110536/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110536/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/03/20100308-vimzencoding.png&quot; alt=&quot;Zen coding in vim&quot; /&gt;&lt;br /&gt;
Zen Coding确实是一个很不错的快速写代码的方式，自&lt;a rel=&quot;nofollow&quot; href=&quot;https://twitter.com/zen_coding&quot;&gt;@zen_coding&lt;/a&gt;发布以来，受到了不少前端人士的追捧和青睐。试想只要输入&lt;code class=&quot;code-inline&quot;&gt;div#content&gt;h1+p&lt;/code&gt;即可得到&lt;code class=&quot;code-inline&quot;&gt;&amp;lt;div id=&quot;content&quot;&gt;&amp;lt;h1&gt;&amp;lt;/h1&gt;&amp;lt;p&gt;&amp;lt;/p&gt;&amp;lt;/div&gt;&lt;/code&gt;这么一段代码，无疑减少了很多次对键盘的敲击，省力省键盘。你想更多的了解Zen Coding可以&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.qianduan.net/zen-coding-a-new-way-to-write-html-code.html&quot;&gt;戳此&lt;/a&gt;查看更详细的介绍。&lt;br /&gt;
&lt;span id=&quot;more-1880&quot;&gt;&lt;/span&gt;&lt;br /&gt;
Vim之前我有做过&lt;a href=&quot;http://leeiio.me/vim-novice/&quot;&gt;简单的介绍&lt;/a&gt;，与其说介绍，不如说是&lt;a href=&quot;http://leeiio.me/vim-novice/&quot;&gt;简单的折腾&lt;/a&gt;。而Zen Coding的官方项目地址&lt;a href=&quot;http://code.google.com/p/zen-coding/&quot; rel=&quot;nofollow&quot;&gt;Google Code&lt;/a&gt;上还木有Zen Coding的vim插件，倒是在VIM的主页上找到了VIM 的 Zen Coding 插件&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.vim.org/scripts/script.php?script_id=2981&quot;&gt;ZenCoding.vim&lt;/a&gt;。如果想跟进这个插件的版本的话，可以Github上找到这个VIM插件的的最新情况&lt;a href=&quot;http://github.com/mattn/zencoding-vim&quot; rel=&quot;nofollow&quot;&gt;http://github.com/mattn/zencoding-vim&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;ZenCoding.vim插件提供的默认展开代码的快捷键是&lt;c-y&gt;,也就是Ctrl + y and Comma。例如输入&lt;code class=&quot;code-inline&quot;&gt;html:5_&lt;/code&gt;(_为光标的位置)，然后输入“&amp;lt;c-y&gt;,”，就会展开成&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;html4strict&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #00bbdd;&quot;&gt;&amp;lt;!DOCTYPE HTML&amp;gt;&lt;/span&gt; 
 &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;html&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;head&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;title&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;title&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;meta&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;charset&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;head&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;body&lt;/span&gt;&amp;gt;&lt;/span&gt; 
      _ 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;body&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;html&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;输入&lt;code class=&quot;code-inline&quot;&gt;div#foo$*2&gt;div.bar&lt;/code&gt;，然后输入“&amp;lt;c-y&gt;,”就会展开成&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;html4strict&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;foo1&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
   &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;bar&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;_&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;foo2&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;bar&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt; 
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;当然，你也可以根据自己的习惯设置展开代码的快捷键，你可以通过在你的vimrc配置文件里写入以下配置来覆盖zencoding.vim插件的默认设置。&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #804040;&quot;&gt;let&lt;/span&gt; g&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;user_zen_settings = &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; 
  \  &lt;span style=&quot;color: #C5A22D;&quot;&gt;'indentation'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;'  '&lt;/span&gt;, 
  \  &lt;span style=&quot;color: #C5A22D;&quot;&gt;'perl'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; 
  \    &lt;span style=&quot;color: #C5A22D;&quot;&gt;'aliases'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; 
  \      &lt;span style=&quot;color: #C5A22D;&quot;&gt;'req'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;'require '&lt;/span&gt; 
  \    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;, 
  \    &lt;span style=&quot;color: #C5A22D;&quot;&gt;'snippets'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt; 
  \      &lt;span style=&quot;color: #C5A22D;&quot;&gt;'use'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;use strict&lt;span style=&quot;&quot;&gt;\n&lt;/span&gt;use warnings&lt;span style=&quot;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;, 
  \      &lt;span style=&quot;color: #C5A22D;&quot;&gt;'warn'&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;warn &lt;span style=&quot;&quot;&gt;\&amp;quot;&lt;/span&gt;|&lt;span style=&quot;&quot;&gt;\&amp;quot;&lt;/span&gt;;&amp;quot;&lt;/span&gt;, 
  \    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt; 
  \  &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt; 
  \&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt; 
&amp;nbsp;
  &lt;span style=&quot;color: #804040;&quot;&gt;let&lt;/span&gt; g&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;user_zen_expandabbr_key = &lt;span style=&quot;color: #C5A22D;&quot;&gt;'&amp;lt;c-e&amp;gt;'&lt;/span&gt;    &lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;设置为ctrl+e展开
&amp;nbsp;
  let g:use_zen_complete_tag = 1&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;截图中的例子：&lt;/strong&gt;&lt;br /&gt;
如果你在这段文本外面包裹这段缩写&lt;code class=&quot;code-inline&quot;&gt;div#header&gt;ul#navigation&gt;li.item$*&gt;a&gt;span:&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;html4strict&quot; style=&quot;font-family:monospace;&quot;&gt;About Us
Products
News
Blog
Contact Up&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;你将会得到以下结果：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;html4strict&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;ul&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;navigation&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;item1&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&lt;/span&gt;About Us&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;item2&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&lt;/span&gt;Products&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;item3&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&lt;/span&gt;News&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;item4&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&lt;/span&gt;Blog&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;item5&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&lt;/span&gt;Contact Up&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;span&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;li&lt;/span&gt;&amp;gt;&lt;/span&gt;
	&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;ul&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #66cc66;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;div&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;目前就目前我对zencoding.vim 0.27版的测试来说，选中文字用&lt;code class=&quot;code-inline&quot;&gt;div#header&gt;ul#navigation&gt;li.item$*&gt;a&gt;span&lt;/code&gt;包括的时候出现了文本内容插入到错误的位置的问题，提交bug给作者了。&lt;br /&gt;
&lt;strong&gt;2010/03/08 22:11&lt;/strong&gt; 更新：作者回复说修复了。在0.28版本中增加了更多的快捷键操作，所以下面的自定义快捷键配置无法生效了。可前往http://github.com/mattn/zencoding-vim获取最新版本。&lt;br /&gt;
&lt;strong&gt;2010/03/09 20:05&lt;/strong&gt; 更新：经过和作者的探讨，原来的&lt;c-z&gt;快捷键已经改为&lt;c-y&gt;，不会和撤销冲突，另外上条更新所说的自定义快捷键重新可用了。&lt;/p&gt;
&lt;p&gt;zencoding.vim更新十分频繁，大家可以关注下。&lt;br /&gt;
VIM官方插件地址：&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.vim.org/scripts/script.php?script_id=2981&quot;&gt;ZenCoding.vim&lt;/a&gt;&lt;br /&gt;
zencoding.vim在Github的地址：&lt;a href=&quot;http://github.com/mattn/zencoding-vim&quot; rel=&quot;nofollow&quot;&gt;http://github.com/mattn/zencoding-vim&lt;/a&gt;&lt;br /&gt;
Zen Coding官方地址：&lt;a rel=&quot;nofollow&quot; href=&quot;http://code.google.com/p/zen-coding/&quot;&gt;http://code.google.com/p/zen-coding/&lt;/a&gt;&lt;br /&gt;
Zen Coding官方提供的速查手册(PDF)：&lt;a rel=&quot;nofollow&quot; href=&quot;http://zen-coding.googlecode.com/files/ZenCodingCheatSheet.pdf&quot;&gt;http://zen-coding.googlecode.com/files/ZenCodingCheatSheet.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/zen-coding-in-vim/&quot;&gt;http://leeiio.me/zen-coding-in-vim/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 18 &lt;/strong&gt;条,欢迎您也过来留下您的意见 !&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/vim-novice/&quot; title=&quot;Vim 新手上路&quot;&gt;Vim 新手上路&lt;/a&gt; (55)&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110536/1studio/feedsky/s.gif?r=http://leeiio.me/zen-coding-in-vim/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/zen-coding-in-vim/feed/</wfw:commentRss><slash:comments>18</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110536/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110536/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;Zen Coding确实是一个很不错的快速写代码的方式，自@zen_coding发布以来，受到了不少前端人士的追捧和青睐。试想只要输入div#content&gt;h1+p即可得到&amp;#60;div id=&quot;content&quot;&gt;&amp;#60;h1&gt;&amp;#60;/h1&gt;&amp;#60;p&gt;&amp;#60;/p&gt;&amp;#60;/div&gt;这么一段代码，无疑减少了很多次对键盘的敲击，省力省键盘。你想更多的了解Zen Coding可以戳此查看更详细的介绍。

Vim之前我有做过简单的介绍，与其说介绍，不如说是简单的折腾。而Zen Coding的官方项目地址Google Code上还木有Zen Coding的vim插件，倒是在VIM的主页上找到了VIM 的 Zen Coding 插件ZenCoding.vim。如果想跟进这个插件的版本的话，可以Github上找到这个VIM插件的的最新情况http://github.com/mattn/zencoding-vim。
ZenCoding.vim插件提供的默认展开代码的快捷键是,也就是Ctrl + y and Comma。例如输入html:5_(_为光标的位置)，然后输入“&amp;#60;c-y&gt;,”，就会展开成

&amp;#60;!DOCTYPE HTML&amp;#62; 
 &amp;#60;html lang=&amp;#34;en&amp;#34;&amp;#62; 
&amp;#60;head&amp;#62; 
    &amp;#60;title&amp;#62;&amp;#60;/title&amp;#62; 
    &amp;#60;meta charset=&amp;#34;UTF-8&amp;#34;&amp;#62; 
&amp;#60;/head&amp;#62; 
&amp;#60;body&amp;#62; 
      _ 
&amp;#60;/body&amp;#62; 
&amp;#60;/html&amp;#62;

输入div#foo$*2&gt;div.bar，然后输入“&amp;#60;c-y&gt;,”就会展开成

&amp;#60;div id=&amp;#34;foo1&amp;#34;&amp;#62; 
   &amp;#60;div class=&amp;#34;bar&amp;#34;&amp;#62;_&amp;#60;/div&amp;#62; 
&amp;#60;/div&amp;#62; 
&amp;#60;div id=&amp;#34;foo2&amp;#34;&amp;#62; 
    [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110536/1studio/feedsky/s.gif?r=http://leeiio.me/zen-coding-in-vim/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>設計資源</category><category>Vim插件</category><category>Vim</category><pubDate>Mon, 08 Mar 2010 13:21:53 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/zen-coding-in-vim/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1880</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/zen-coding-in-vim/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110536/4400837</fs:itemid></item><item><title>Over the rainbow what a wonder</title><link>http://leeiio.me/over-the-rainbow-what-a-wonder/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110537/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110537/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/03/20100305_rain.jpg&quot; alt=&quot;雨，蜗牛，春天&quot; /&gt;&lt;br /&gt;
&lt;embed src=&quot;http://www.8box.com/feed/cccccc_s_61755_/mini.swf&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;160&quot; height=&quot;32&quot;&gt;&lt;/embed&gt;&lt;br /&gt;
有时候，心情就跟这几天的天气一样，湿嗒嗒软绵绵的，沮丧到抬不起头。&lt;br /&gt;
都说一年之计在于春，我在考虑换个工作环境。&lt;br /&gt;
&lt;span id=&quot;more-1870&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
somewhere over the rainbow way up high&lt;br /&gt;
and the dreams that you dream of once in a lullaby&lt;br /&gt;
somewhere over the rainbow bluebirds fly&lt;br /&gt;
and the dreams that you dream of, dreams really do come true&lt;br /&gt;
someday i&amp;#8217;ll wish upon a star, wake up where the clouds are far behind me&lt;br /&gt;
where trouble melts like lemon drops&lt;br /&gt;
high above the chimney tops, that&amp;#8217;s where you&amp;#8217;ll find me&lt;br /&gt;
somewhere over the rainbow bluebirds fly&lt;br /&gt;
and the dreams that you dare to, oh why, oh why can&amp;#8217;t i?&lt;br /&gt;
well i see trees of green and red roses too,&lt;br /&gt;
i&amp;#8217;ll watch them bloom for me and you&lt;br /&gt;
and i think to myself, what a wonderful world&lt;/p&gt;
&lt;p&gt;well i see skies of blue and clouds of white and the brightness of day&lt;br /&gt;
i like the dark and i think to myself, what a wonderful world&lt;br /&gt;
the colors of the rainbow so pretty in the sky are also on the faces of people&lt;br /&gt;
passing by&lt;br /&gt;
i see friends shaking hands saying,&lt;br /&gt;
how do you do?&lt;br /&gt;
they&amp;#8217;re really saying, i i love you&lt;br /&gt;
i hear babies cry and i watch them grow,&lt;br /&gt;
they&amp;#8217;ll learn much more than we&amp;#8217;ll know&lt;br /&gt;
and i think to myself, what a wonderful world&lt;/p&gt;
&lt;p&gt;someday i&amp;#8217;ll wish upon a star, wake up where the clouds are far behind me&lt;br /&gt;
where trouble melts like lemon drops&lt;br /&gt;
high above the chimney tops, that&amp;#8217;s where you&amp;#8217;ll find me&lt;br /&gt;
somewhere over the rainbow way up high&lt;br /&gt;
and the dreams that you dare to, oh why, oh why can&amp;#8217;t i?
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/over-the-rainbow-what-a-wonder/&quot;&gt;http://leeiio.me/over-the-rainbow-what-a-wonder/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 13 &lt;/strong&gt;条,欢迎您也过来留下您的意见 !&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/caty/&quot; title=&quot;喵嗚&quot;&gt;喵嗚&lt;/a&gt; (22)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/rainday-summer-left/&quot; title=&quot;下雨天了怎麼辦&quot;&gt;下雨天了怎麼辦&lt;/a&gt; (14)&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110537/1studio/feedsky/s.gif?r=http://leeiio.me/over-the-rainbow-what-a-wonder/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/over-the-rainbow-what-a-wonder/feed/</wfw:commentRss><slash:comments>13</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110537/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110537/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;有时候，心情就跟这几天的天气一样，湿嗒嗒软绵绵的，沮丧到抬不起头。
都说一年之计在于春，我在考虑换个工作环境。


somewhere over the rainbow way up high
and the dreams that you dream of once in a lullaby
somewhere over the rainbow bluebirds fly
and the dreams that you dream of, dreams really do come true
someday i&amp;#8217;ll wish upon a star, wake up where the clouds are far behind me
where trouble melts like lemon drops
high above the chimney [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110537/1studio/feedsky/s.gif?r=http://leeiio.me/over-the-rainbow-what-a-wonder/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>工作</category><category>下雨天</category><category>混合，雜亂無章。</category><pubDate>Sat, 06 Mar 2010 14:07:16 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/over-the-rainbow-what-a-wonder/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1870</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/over-the-rainbow-what-a-wonder/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110537/4400837</fs:itemid></item><item><title>Vim 新手上路</title><link>http://leeiio.me/vim-novice/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110538/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110538/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me//blogimgs/2010/02/20100223_vimbird.png&quot; alt=&quot;Vim 初探&quot; /&gt;&lt;br /&gt;
之前一直用的文本编辑器事Notepad++，IDE是Aptana，前者轻便实用，后者十分强大，搭配使用更是没话说。当然还有很多强大的诸如IDEA等等。Vim这个强大的编辑器想不知道都难，可是一直没去尝试使用，总觉得配置好Vim是一件很复杂的事情，今天终于按捺不住那份渴望，尝试了一下，终于无法自拔。 &lt;/p&gt;
&lt;p&gt;虽然我很out了，但是我想还是有很多Vim初学者徘徊在门外，抱着窥一窥的态度。我也就作为一个菜鸟，谈谈我的上路之旅吧。&lt;br /&gt;
&lt;span id=&quot;more-1858&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;1.Vim安装&lt;/h2&gt;
&lt;p&gt;官网http://www.vim.org/download.php处下载适合的版本即可，因为我的公司工作平台是Win XP，所以我下的是GUI executable版本图形化界面的版本gvim72.zip。 &lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;2.多语言乱码问题&lt;/h2&gt;
&lt;p&gt;安装好之后，我想第一要解决的问题是编码问题。和所有的流行文本编辑器一样，&lt;a href=&quot;http://leeiio.me/vim-novice/&quot;&gt;Vim&lt;/a&gt; 可以很好的编辑各种字符编码的文件，这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是，和很多来自 Linux 世界的软件一样，这需要你自己动手设置。一般的，vim打开中文文件时会出现乱码，原因比较复杂，这里不罗嗦了。就说说我的配置吧。&lt;a href=&quot;http://leeiio.me/vim-novice/&quot;&gt;Vim&lt;/a&gt;的配置问题存在于安装路径的根目录，比如我安装在D:\Program Files\Vim，_vimrc文件就是它的配置文件，以下所描述的配置信息皆写到这个文件里。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #adadad; font-style: italic;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #adadad; font-style: italic;&quot;&gt;&amp;quot; =&amp;gt; 配置多语言环境&lt;/span&gt;
&lt;span style=&quot;color: #adadad; font-style: italic;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #25BB4D;&quot;&gt;has&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;multi_byte&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    set encoding=utf&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;8&lt;/span&gt;
    set termencoding=utf&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;8&lt;/span&gt;
    set formatoptions&lt;span style=&quot;color: #000000;&quot;&gt;+&lt;/span&gt;=mM
    set fencs=utf&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight:bold;&quot;&gt;8&lt;/span&gt;,gbk
&amp;nbsp;
    &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; v&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;lang =&lt;span style=&quot;color: #000000;&quot;&gt;~?&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;'^&lt;span style=&quot;&quot;&gt;\(&lt;/span&gt;zh&lt;span style=&quot;&quot;&gt;\)&lt;/span&gt;&lt;span style=&quot;&quot;&gt;\|&lt;/span&gt;&lt;span style=&quot;&quot;&gt;\(&lt;/span&gt;ja&lt;span style=&quot;&quot;&gt;\)&lt;/span&gt;&lt;span style=&quot;&quot;&gt;\|&lt;/span&gt;&lt;span style=&quot;&quot;&gt;\(&lt;/span&gt;ko&lt;span style=&quot;&quot;&gt;\)&lt;/span&gt;'&lt;/span&gt;
        set ambiwidth=double
    &lt;span style=&quot;color: #804040;&quot;&gt;endif&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #804040;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #25BB4D;&quot;&gt;has&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;win32&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
	&lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;处理菜单及右键菜单乱码
        source $VIMRUNTIME/delmenu.vim
        source $VIMRUNTIME/menu.vim
        source $VIMRUNTIME/mswin.vim
        behave mswin
        language messages zh_CN.utf-8 &amp;quot;&lt;/span&gt;处理consle输出乱码
    &lt;span style=&quot;color: #804040;&quot;&gt;endif&lt;/span&gt;
&lt;span style=&quot;color: #804040;&quot;&gt;else&lt;/span&gt;
    &lt;span style=&quot;color: #804040;&quot;&gt;echoerr&lt;/span&gt; &lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;Sorry, this version of (g)vim was not compiled with +multi_byte&amp;quot;&lt;/span&gt;
&lt;span style=&quot;color: #804040;&quot;&gt;endif&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Vim配置文件里面半角的&amp;#8221;是注释。多语言环境编码的配置取自&lt;a href=&quot;http://www.gracecode.com/archives/1780/&quot;&gt;明城&lt;/a&gt;的Vim的配置。&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;3.字体的设置&lt;/h2&gt;
&lt;p&gt;写代码，好看的字体很重要。不管是什么，好看的东西都很重要。好看，能带给人愉悦感，写代码也不例外。我用的是大名鼎鼎的Yahei Consolas Hybrid修改字体，中文字体是雅黑，代码字体么自然是Consolas。  Consolas字体原本是微软为 Visual Studio 2005和2008用户提供的，原版只是单独的英文字体，不含中文。因此在中文环境下显示会是“宋体”+Consolas 的组合，难看至极。而这个修改版替换了雅黑作为中文字体，美观度自然是宋体有所提高，当然也是因人而异。要下载字体可以&lt;a href=&quot;http://rapidshare.com/files/116657698/YaHei.Consolas.1.12.zip.html&quot; rel=&quot;nofollow&quot;&gt;戳这里&lt;/a&gt;下载。&lt;br /&gt;
然后在配置里加入以下代码来指定字体&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;set guifont=YaHei_Consolas_Hybrid&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;h12&lt;span style=&quot;color: #000000;&quot;&gt;:&lt;/span&gt;cANSI &lt;span style=&quot;color: #C5A22D;&quot;&gt;&amp;quot;h12表示的是字号大小&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class=&quot;part-title&quot;&gt;3.配色方案&lt;/h2&gt;
&lt;p&gt;在用notepad++的时候，我一直最中意monokai这个配色，在Vim下叫molokai，这是一款很知名的配色，至少我很喜欢，就是最顶端的那个截图里的配色啦。这款配色同样可以&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.vim.org/scripts/script.php?script_id=2340&quot;&gt;戳这里&lt;/a&gt;获得。&lt;br /&gt;
然后你可以在配置里写入以下代码来指定你的界面为该配色&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;vim&quot; style=&quot;font-family:monospace;&quot;&gt;colorscheme molokai&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class=&quot;part-title&quot;&gt;4.一些插件和扩展&lt;/h2&gt;
&lt;p&gt;也许你同样注意到了截图中的那些花花绿绿背景色的东西，这个叫CSS color preview的扩展可以使css里面的那些颜色具体化也就是表现出来，十分直观。继续&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2150&quot;&gt;戳这里&lt;/a&gt;下载。&lt;br /&gt;
而代码提示插件用的是AutoComplPop，还在使用DW或者aptana等一些工具的朋友们肯定对代码弹出提示情有独钟，这款插件的功能可以说是有过之而无不及啊，当然如果你不喜欢这种自动的代码提示的话可以不用装。需要的朋友还是&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1879&quot; rel=&quot;nofollow&quot;&gt;戳这里&lt;/a&gt;下载。&lt;/p&gt;
&lt;p&gt;Vim的强大之处当然不止本文说的这么些皮毛，丰富的扩展插件让其光芒不减。我还涉谷未深，这种新上上路的文章希望能给每个想加入Vim阵营的朋友们以帮助。今后会有更多的关于Vim的分享。欢迎收看！&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/vim-novice/&quot;&gt;http://leeiio.me/vim-novice/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 55 &lt;/strong&gt;条,大家讨论的如此激烈,你为什么不过去瞧瞧?!&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/zen-coding-in-vim/&quot; title=&quot;在Vim里玩Zen Coding&quot;&gt;在Vim里玩Zen Coding&lt;/a&gt; (18)&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110538/1studio/feedsky/s.gif?r=http://leeiio.me/vim-novice/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/vim-novice/feed/</wfw:commentRss><slash:comments>55</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110538/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110538/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;之前一直用的文本编辑器事Notepad++，IDE是Aptana，前者轻便实用，后者十分强大，搭配使用更是没话说。当然还有很多强大的诸如IDEA等等。Vim这个强大的编辑器想不知道都难，可是一直没去尝试使用，总觉得配置好Vim是一件很复杂的事情，今天终于按捺不住那份渴望，尝试了一下，终于无法自拔。 
虽然我很out了，但是我想还是有很多Vim初学者徘徊在门外，抱着窥一窥的态度。我也就作为一个菜鸟，谈谈我的上路之旅吧。

1.Vim安装
官网http://www.vim.org/download.php处下载适合的版本即可，因为我的公司工作平台是Win XP，所以我下的是GUI executable版本图形化界面的版本gvim72.zip。 
2.多语言乱码问题
安装好之后，我想第一要解决的问题是编码问题。和所有的流行文本编辑器一样，Vim 可以很好的编辑各种字符编码的文件，这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是，和很多来自 Linux 世界的软件一样，这需要你自己动手设置。一般的，vim打开中文文件时会出现乱码，原因比较复杂，这里不罗嗦了。就说说我的配置吧。Vim的配置问题存在于安装路径的根目录，比如我安装在D:\Program Files\Vim，_vimrc文件就是它的配置文件，以下所描述的配置信息皆写到这个文件里。

&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;
&amp;#34; =&amp;#62; 配置多语言环境
&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;&amp;#34;
if has&amp;#40;&amp;#34;multi_byte&amp;#34;&amp;#41;
    set encoding=utf-8
    set termencoding=utf-8
    set formatoptions+=mM
    set fencs=utf-8,gbk
&amp;#160;
    if v:lang =~? '^\(zh\)\&amp;#124;\(ja\)\&amp;#124;\(ko\)'
        set ambiwidth=double
    [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110538/1studio/feedsky/s.gif?r=http://leeiio.me/vim-novice/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>設計資源</category><category>Vim</category><category>新手上路</category><pubDate>Wed, 24 Feb 2010 21:37:33 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/vim-novice/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1858</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/vim-novice/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110538/4400837</fs:itemid></item><item><title>pushme.to 给我push信息吧！</title><link>http://leeiio.me/pushme-to/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110539/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110539/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/02/20100208-pushmeto.jpg&quot; alt=&quot;pushme.to&quot; /&gt;&lt;br /&gt;
不同于另一款大名鼎鼎的&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.pingmessaging.com/Ping!/Ping!.html&quot;&gt;Ping!&lt;/a&gt;是，本文介绍的pushme.to支持的更多，可以在WEB端给iPhone/iTouch 发送push信息，当然你也可以为你的博客增加一个widget来发送push信息到你的iPhone/iTouch。&lt;br /&gt;
&lt;span id=&quot;more-1830&quot;&gt;&lt;/span&gt;&lt;br /&gt;
那么什么是pushme.to？pushme.to是一个利用 iPhone/iTouch Push Notification 系统进行消息传递的工具，简单，却实用。而你所要做的就是打开你的 iPhone/iTouch 的 Push Notification 功能即可。&lt;/p&gt;
&lt;p&gt;同时你也可以生成一个&lt;a rel=&quot;nofollow&quot; href=&quot;http://pushme.to/widget.html&quot;&gt;widget&lt;/a&gt;来实现让用户快速给你push信息的操作，并且还有&lt;a rel=&quot;nofollow&quot; href=&quot;http://wordpress.org/extend/plugins/pushmeto-widget/&quot;&gt;wordpress 插件&lt;/a&gt;！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/02/20100208_notification.jpg&quot; alt=&quot;pushme.to&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/02/20100208_inbox.jpg&quot; alt=&quot;pushme.to&quot; /&gt;&lt;/p&gt;
&lt;p&gt;目前售价$0.99，我当时是限时免费的时候购买的。iPhone/iTouch适用。&lt;br /&gt;
&lt;a href=&quot;http://itunes.com/apps/pushmeto&quot;&gt;&lt;img alt=&quot;Available on AppStore&quot; src=&quot;http://pushme.to/img/App_Store_Badge_EN.png&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;你可以点击这里给我发送一条push信息。&lt;/strong&gt;&lt;br /&gt;
&lt;a rel=&quot;nofollow external&quot; title=&quot;点击此处给我发送push信息&quot; href=&quot;http://pushme.to/leeiio/&quot;&gt;&lt;img src=&quot;http://pushme.to/img/logo.png&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/pushme-to/&quot;&gt;http://leeiio.me/pushme-to/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 15 &lt;/strong&gt;条,欢迎您也过来留下您的意见 !&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;年度曖昧文章&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110539/1studio/feedsky/s.gif?r=http://leeiio.me/pushme-to/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/pushme-to/feed/</wfw:commentRss><slash:comments>15</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110539/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110539/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;不同于另一款大名鼎鼎的Ping!是，本文介绍的pushme.to支持的更多，可以在WEB端给iPhone/iTouch 发送push信息，当然你也可以为你的博客增加一个widget来发送push信息到你的iPhone/iTouch。

那么什么是pushme.to？pushme.to是一个利用 iPhone/iTouch Push Notification 系统进行消息传递的工具，简单，却实用。而你所要做的就是打开你的 iPhone/iTouch 的 Push Notification 功能即可。
同时你也可以生成一个widget来实现让用户快速给你push信息的操作，并且还有wordpress 插件！


目前售价$0.99，我当时是限时免费的时候购买的。iPhone/iTouch适用。

你可以点击这里给我发送一条push信息。


本文地址:http://leeiio.me/pushme-to/截至您的阅读器抓取时已有评论 15 条,欢迎您也过来留下您的意见 !©Copyright 2007-2009 Leeiio Chaos Made http://Leeiio.me本站更換RSS地址：http://feed.leeiio.me，麻煩大家更新下，謝謝！
声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 Leeiio.me
 年度曖昧文章&lt;img src=&quot;http://www1.feedsky.com/t1/341110539/1studio/feedsky/s.gif?r=http://leeiio.me/pushme-to/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>iTouch</category><category>Mac二三事</category><category>pushme.to</category><category>iPhone</category><pubDate>Mon, 08 Feb 2010 20:27:15 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/pushme-to/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1830</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/pushme-to/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110539/4400837</fs:itemid></item><item><title>全世界最短的 JavaScript 判定 IE 浏览器！这个可以短！</title><link>http://leeiio.me/ie_detection_in_5_bytes/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110540/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110540/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/01/20100131_theShortestDefinitionOfIE.jpg&quot; alt=&quot;全世界最短的JavaScript判定IE浏览器！&quot; /&gt;&lt;br /&gt;
有些东西你想让它长它并不一定就会如愿，但是有一些东西你想让它短也并不一定就会如愿，这两者都要看你的本事。对于我等IT民工来说，自然是代码写得越短越好。&lt;/p&gt;
&lt;p&gt;你知道，IE是个脑残儿浏览器，不管是什么版本，纵使版本号越来越大，可总是让人觉得这玩意儿跟标准老是扯不上暧昧。可是，你知道，只要世上还有 windows 操作系统，IE就永生不灭，阿门。对于代码工作者来说，自然是苦不堪言，为了考虑IE的兼容问题，不管是写 CSS 还是 JS，往往都要对 IE 特别对待，这就少不了做些判断。本文不讨论如何区分 IE 的样式，仅是 JS 判定 IE 浏览器。&lt;br /&gt;
&lt;span id=&quot;more-1818&quot;&gt;&lt;/span&gt;&lt;br /&gt;
这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自一个&lt;a rel=&quot;nofollow&quot; href=&quot;http://studioad.ru/blog/ie_detection_in_5_bytes/2010-01-08-103&quot;&gt;俄人&lt;/a&gt;,又是俄人！它已经在各版本的 IE 以及目前其他流行的浏览器上经过测试，基于 IE 的 Bug，微软虽然已经意识到，但是从来没有纠正过。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'text/javascript'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; ie &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;!-&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;ie&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;以上代码运行结果：IE 下返回true，其他标准浏览器返回false。!-[1,]，仅仅只有 6 bytes！&lt;/p&gt;
&lt;p&gt;不过如果反过来判断，标准浏览器返回 true 而 IE 返回 false的话，则可以再缩短一个byte。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'text/javascript'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;
notIe &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// 标准浏览器代码&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// IE Only的代码&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;看完了这些，你们是不是很好奇这些是怎么运行的？请继续看下文。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个 Bug 产生的原因是 IE 会添加一个空数组元素到数组元素的总数里。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;. &lt;span style=&quot;color: #660066;&quot;&gt;Length&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;标准浏览器会返回 1 (基于标准的 ECMAscript ，在数组最后的逗号&amp;#8221;,&amp;#8221;会被忽略，这是为了方便在一列里显示以及自动生成等)，但是 IE 会返回 2。当你打印这个数组的时候 IE 将会返回 &amp;#8220;1, &amp;#8220;，也就是两个元素，而其他标准浏览器将会返回 &amp;#8220;1&amp;#8243;。&lt;/p&gt;
&lt;p&gt;这很容易验证，比如在 IE 和 FF中运行以下代码：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'text/javascript'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;','&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;//这是8个字符判定IE&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;[1,]实际上浏览器的操作是toString()转换成字符串的操作，-[1,]是将字符串强制转换为数字。而 IE 将会返回 NaN，但是遗憾的是 NaN 并不是一个数字，因为[1,]转换成字符串后的&amp;#8221;1,&amp;#8221;里面带有逗号。而其他标准浏览器会返回 -1，这是一个非 0 的数字。&lt;/p&gt;
&lt;p&gt;你知道，NaN 转换成 Boolean 型将返回 false，所以-[1,]在 IE 下将返回 false。而任何非 0 的数字转换成 Boolean 型(例如-1)，在 标准浏览器下都将返回 true。所以我们得到了一个判定结果，!-[1,]在 IE 下返回true，而在其他标准浏览器下返回 false。也就达到了区分判定 IE 浏览器的目的。&lt;/p&gt;
&lt;p&gt;当然，如前文所说，这个 Bug 其实微软很早就已经知道，但是却一直没有去修复它，所以在未来的 &gt; IE8 的 IE 浏览器也就不确定是否依旧可以，不过基本上这么多代的 IE 都没有修复，未来的 IE 也不太会去修复的样子。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;以下是其他的一些区分判定 IE 浏览器的代码，也可以参考下:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'text/javascript'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// Option from Dean Edwards:&lt;/span&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; ie &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;/*@cc_on!@*/&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// Use the commented line:&lt;/span&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; ie&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;//@cc_on=1;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #006600; font-style: italic;&quot;&gt;// Variation (shorter variable):&lt;/span&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; ie &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #3366CC;&quot;&gt;'&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\v&lt;/span&gt;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'v'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #009966; font-style: italic;&quot;&gt;/ /&lt;/span&gt; Option to Gareth Hayes &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;former record&lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt;holder&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt;
&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; ie &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;!+&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\v&lt;/span&gt;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;/&lt;/span&gt; script&lt;span style=&quot;color: #339933;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;参考文章：&lt;br /&gt;
&lt;a href=&quot;http://studioad.ru/blog/ie_detection_in_5_bytes/2010-01-08-103&quot; rel=&quot;nofollow&quot;&gt;Самое короткое определение IE&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html&quot; rel=&quot;nofollow&quot;&gt;32 bytes, ehr &amp;#8230; 9, ehr &amp;#8230; 7!!! to know if your browser is IE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/ie_detection_in_5_bytes/&quot;&gt;http://leeiio.me/ie_detection_in_5_bytes/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 37 &lt;/strong&gt;条,大家讨论的如此激烈,你为什么不过去瞧瞧?!&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;年度曖昧文章&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110540/1studio/feedsky/s.gif?r=http://leeiio.me/ie_detection_in_5_bytes/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/ie_detection_in_5_bytes/feed/</wfw:commentRss><slash:comments>37</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110540/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110540/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;有些东西你想让它长它并不一定就会如愿，但是有一些东西你想让它短也并不一定就会如愿，这两者都要看你的本事。对于我等IT民工来说，自然是代码写得越短越好。
你知道，IE是个脑残儿浏览器，不管是什么版本，纵使版本号越来越大，可总是让人觉得这玩意儿跟标准老是扯不上暧昧。可是，你知道，只要世上还有 windows 操作系统，IE就永生不灭，阿门。对于代码工作者来说，自然是苦不堪言，为了考虑IE的兼容问题，不管是写 CSS 还是 JS，往往都要对 IE 特别对待，这就少不了做些判断。本文不讨论如何区分 IE 的样式，仅是 JS 判定 IE 浏览器。

这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自一个俄人,又是俄人！它已经在各版本的 IE 以及目前其他流行的浏览器上经过测试，基于 IE 的 Bug，微软虽然已经意识到，但是从来没有纠正过。

&amp;#60;script type='text/javascript'&amp;#62;
var ie = !-&amp;#91;1,&amp;#93;;
alert&amp;#40;ie&amp;#41;;
&amp;#60;/script&amp;#62;

以上代码运行结果：IE 下返回true，其他标准浏览器返回false。!-[1,]，仅仅只有 6 bytes！
不过如果反过来判断，标准浏览器返回 true 而 IE 返回 false的话，则可以再缩短一个byte。

&amp;#60;script type='text/javascript'&amp;#62;
notIe = -&amp;#91;1,&amp;#93;;
&amp;#160;
if&amp;#40;-&amp;#91;1,&amp;#93;&amp;#41;&amp;#123;
// 标准浏览器代码
&amp;#125;else&amp;#123;
// IE Only的代码
&amp;#125;
&amp;#60;/script&amp;#62;

看完了这些，你们是不是很好奇这些是怎么运行的？请继续看下文。
这个 Bug 产生的原因是 IE 会添加一个空数组元素到数组元素的总数里。

&amp;#91;1,&amp;#93;. Length

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

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

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

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

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

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

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

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

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

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/jquery-1_4-released/&quot;&gt;http://leeiio.me/jquery-1_4-released/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 33 &lt;/strong&gt;条,大家讨论的如此激烈,你为什么不过去瞧瞧?!&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/sweet-titles-for-jquery/&quot; title=&quot;Sweet Titles for jQuery (美妙的标题提示) !&quot;&gt;Sweet Titles for jQuery (美妙的标题提示) !&lt;/a&gt; (42)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/book-sharp-jquery/&quot; title=&quot;新书《锋利的 jQuery》&quot;&gt;新书《锋利的 jQuery》&lt;/a&gt; (20)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/jquery-changes-link-text/&quot; title=&quot;改善网站体验小细节，点击改变链接的文本!&quot;&gt;改善网站体验小细节，点击改变链接的文本!&lt;/a&gt; (30)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/jquery-select-option/&quot; title=&quot;用 jQuery 制作模拟下拉框，改变你的下拉框样式&quot;&gt;用 jQuery 制作模拟下拉框，改变你的下拉框样式&lt;/a&gt; (24)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/cookies-wordpress-sidebar/&quot; title=&quot;升级版！Cookies 记录你的 Wordpress 侧边栏关闭/显示的状态&quot;&gt;升级版！Cookies 记录你的 Wordpress 侧边栏关闭/显示的状态&lt;/a&gt; (29)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/show-close-sidebar-wordpress/&quot; title=&quot;关闭/显示你的 Wordpress 侧边栏，享受阅读快感&quot;&gt;关闭/显示你的 Wordpress 侧边栏，享受阅读快感&lt;/a&gt; (72)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://leeiio.me/jquery-last-by-author/&quot; title=&quot;用 jQuery 實現的 Wordpress 標註作者的最後評論回覆&quot;&gt;用 jQuery 實現的 Wordpress 標註作者的最後評論回覆&lt;/a&gt; (38)&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110541/1studio/feedsky/s.gif?r=http://leeiio.me/jquery-1_4-released/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/jquery-1_4-released/feed/</wfw:commentRss><slash:comments>33</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110541/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110541/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;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, Ariel Flesler, Paul Irish, Robert Katić, Yehuda Katz, Dave Methvin, Justin Meyer, Karl Swedberg, and Aaron Quint。谢谢他们在修复BUG和完成这次发布上所做的工作。
下载(Downloading)
按照惯例，我们提供了两份jQuery的拷贝，一份是最小化的(我们现在采用Google Closure作为默认的压缩工具了)，一份是未压缩的(供纠错或阅读)。

jQuery压缩 (23kb [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110541/1studio/feedsky/s.gif?r=http://leeiio.me/jquery-1_4-released/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>jQuery</category><category>JS/Ajax/AS/Flex</category><pubDate>Thu, 21 Jan 2010 12:02:38 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/jquery-1_4-released/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1797</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/jquery-1_4-released/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110541/4400837</fs:itemid></item><item><title>不要忽视你博客的访客！博客营销小技巧两则，附程序代码。</title><link>http://leeiio.me/do-not-neglect-ur-visitors/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110542/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110542/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/01/20100111_blog-board.png&quot; alt=&quot;不要忽视你博客的访客！博客营销小技巧两则，附程序代码。&quot; /&gt;&lt;br /&gt;
很多博客都在想方设法地推广自己，当然方法很多，我就不一一列举了。但本文我要说的博客营销方式差不多是很多博客主正在做的并积极奉行的一种方法，那就是在各博客中游走，评论，留下自己的 URL ，然后等待被点击。除了做好 SEO 外，我觉得这确实是一种很实在并且有效的方法。&lt;br /&gt;
&lt;span id=&quot;more-1778&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;方法一：批量导出访客的 URL进行回访 &lt;/h2&gt;
&lt;p&gt;正如上文所说，一般访问都会填写自己的 URL，日积月累下来，数据库里肯定存了很多访客的 URLS。并且都在 wordpress 数据库的 wp_comments 数据表里，既然知道自己想要的数据存在数据库的什么位置，要把它们给筛选出来就显得简单多了。看下面的代码。只要复制并修改代码中中文文字提示部分并保存到 .php 的文件里然后放到自己的服务器上打开即可获得全部访客的 URLS。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;mysql_connect&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Mysql服务器地址，一般都为localhost&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;数据库用户名&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;数据库密码&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; or &lt;span style=&quot;color: #990000;&quot;&gt;die&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Datebase Could not be connected: &amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_error&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;mysql_select_db&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Mysql数据库名字&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_query&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;SELECT DISTINCT comment_author_url , comment_author FROM wp_comments WHERE comment_author_url != '' AND comment_author_url != 'http://'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;  &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// 排除没有填写 URL 的数据&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_fetch_array&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;comment_author&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;   &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&amp;lt;a target='_blank' href='&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;comment_author_url&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;'&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;comment_author_url&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;mysql_free_result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;为了更方便阅读和查看，我另外筛选出了对应的评论者名字，并且给每条 URL 加上了 a 标记以便直接点击查看。当然，如果comment_author_url , comment_author后面再加一条筛选条件变成comment_author_url , comment_author,comment_author_email,然后配合wordpress 的 get_avatar( 邮件地址, &amp;#8216;头像大小&amp;#8217; )就可以输出更直观的带头像的列表了(这种方法的话得配合wordpress运行不能单独运行，或者载入wordpress的get_avatar函数)。&lt;/p&gt;
&lt;h2 class=&quot;part-title&quot;&gt;方法二：批量导出访客的 email，EDM&lt;/h2&gt;
&lt;p&gt;EDM 可是个外恶的东西，不过我刚入职阿里的时候就是干设计 EDM 的行当。EDM 对于营销者来说是个利器，但是对于收邮件的用户来说无疑是个灾难，这几乎就是垃圾邮件的 “衣冠楚楚” 的一个专有名词的说法。&lt;br /&gt;
EDM 就是所谓的邮件营销，在你得知了一大票的用户 email 地址的时候你就可以通过群发邮件来达到营销手段。&lt;em&gt;所以，谨慎使用！&lt;/em&gt;&lt;br /&gt;
一般大节日诸如即将到来的春节这个特别喜庆的日子你可以群发邮件，一般这时候人们心情比较好，不会怪你的哈=_= ||&lt;br /&gt;
当然，最好能有个好的内容设计，能达到更好的效果。&lt;br /&gt;
&lt;em&gt;但是，谨慎使用不光是提醒你群发邮件可能会给收邮件人带来厌恶感之外，就是如果退信率过高，也是会被一些邮件提供商给加入 “黑名单”的，以后你发的邮件就有可能出现在别人邮箱的垃圾邮件一栏里了，所以，谨慎使用！&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;以下是代码，同样，复制并修改代码中中文文字提示部分并另存为.php的网页，在服务器运行访问即可。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #990000;&quot;&gt;mysql_connect&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Mysql服务器地址，一般都为localhost&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;数据库用户名&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;数据库密码&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; or &lt;span style=&quot;color: #990000;&quot;&gt;die&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Datebase Could not be connected: &amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_error&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;mysql_select_db&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;Mysql数据库名字&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_query&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;SELECT DISTINCT comment_author_email FROM wp_comments WHERE comment_author_email != '' &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$conn&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #990000;&quot;&gt;mysql_fetch_array&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;comment_author_email&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;','&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;mysql_free_result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;需要注意的是，请注意保护好你的访客的隐私，所以我不建议你们把导出的email地址们直接复制粘贴到收件人一栏，因为这将直接将你的访客的email地址暴露在其余收到邮件的列表中的用户邮箱中。所以，推荐用密送，也就是 bcc。至于收件人一栏，可以填写自己的email。&lt;/p&gt;
&lt;p class=&quot;alert&quot;&gt;
名词解释：&lt;br /&gt;
CC 英文全称是 Carbon Copy(抄送)；BCC 英文全称是 Blind CarbonCopy(暗抄送/密送)。两者的区别在于在BCC 栏中的收件人可以看到所有的收件人名(TO,CC,自己)，而在 TO 和 CC 栏中的收件人看不到 BBC 的收件人名。&lt;br /&gt;
如： A 发送邮件 to B，cc to C，bcc to D&lt;br /&gt;
那么：A知道发送给了B，抄送给了C，密送给了D。&lt;br /&gt;
        B知道这封是A发送给自己的，并且抄送给了C。&lt;br /&gt;
        C知道这封是A发送给B的，并且抄送给了自己。&lt;br /&gt;
        D知道这封是A发送给B的，并且抄送给了C，而且密送给了自己。
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;另外需要注意的是，如果你在安装 wordpress 的时候自己指定了表头，请修改代码中的wp_comments。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这里只是提供了两种针对博客的可行的营销方式，程序很简单，就是简单的 SQL 查询和 php 输出而已。仅是今晚心血来潮想看看我博客的访客留下的 URL 地址而进行的一系列发散，欢迎评论！&lt;/p&gt;
&lt;p&gt;Keep busy ing！&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/do-not-neglect-ur-visitors/&quot;&gt;http://leeiio.me/do-not-neglect-ur-visitors/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 48 &lt;/strong&gt;条,大家讨论的如此激烈,你为什么不过去瞧瞧?!&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;年度曖昧文章&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110542/1studio/feedsky/s.gif?r=http://leeiio.me/do-not-neglect-ur-visitors/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/do-not-neglect-ur-visitors/feed/</wfw:commentRss><slash:comments>48</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110542/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110542/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;很多博客都在想方设法地推广自己，当然方法很多，我就不一一列举了。但本文我要说的博客营销方式差不多是很多博客主正在做的并积极奉行的一种方法，那就是在各博客中游走，评论，留下自己的 URL ，然后等待被点击。除了做好 SEO 外，我觉得这确实是一种很实在并且有效的方法。

方法一：批量导出访客的 URL进行回访 
正如上文所说，一般访问都会填写自己的 URL，日积月累下来，数据库里肯定存了很多访客的 URLS。并且都在 wordpress 数据库的 wp_comments 数据表里，既然知道自己想要的数据存在数据库的什么位置，要把它们给筛选出来就显得简单多了。看下面的代码。只要复制并修改代码中中文文字提示部分并保存到 .php 的文件里然后放到自己的服务器上打开即可获得全部访客的 URLS。

&amp;#60;?php
$conn = @mysql_connect&amp;#40;&amp;#34;Mysql服务器地址，一般都为localhost&amp;#34;,&amp;#34;数据库用户名&amp;#34;,&amp;#34;数据库密码&amp;#34;&amp;#41; or die&amp;#40;&amp;#34;Datebase Could not be connected: &amp;#34; . mysql_error&amp;#40;&amp;#41;&amp;#41;;
mysql_select_db&amp;#40;&amp;#34;Mysql数据库名字&amp;#34;, $conn&amp;#41;;
$result = mysql_query&amp;#40;&amp;#34;SELECT DISTINCT comment_author_url , comment_author FROM wp_comments WHERE comment_author_url != '' AND comment_author_url != 'http://'&amp;#34;, $conn&amp;#41;;  // 排除没有填写 URL 的数据
while&amp;#40;$row = mysql_fetch_array&amp;#40;$result&amp;#41;&amp;#41; &amp;#123;
echo $row&amp;#91;&amp;#34;comment_author&amp;#34;&amp;#93;.&amp;#34;  [...]&lt;img src=&quot;http://www1.feedsky.com/t1/341110542/1studio/feedsky/s.gif?r=http://leeiio.me/do-not-neglect-ur-visitors/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>批量导出访客URL</category><category>博客营销</category><category>PHP</category><category>Wordpress</category><category>批量导出访客email</category><pubDate>Mon, 11 Jan 2010 23:45:22 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/do-not-neglect-ur-visitors/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1778</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/do-not-neglect-ur-visitors/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110542/4400837</fs:itemid></item><item><title>Wordpress 原生嵌套 ajax 评论的实现</title><link>http://leeiio.me/wordpress-ajax-thread-comments/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110543/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110543/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/01/20100110_ajax-thread-comment.jpg&quot; alt=&quot;泪流满面&quot; /&gt;&lt;br /&gt;
我都快不记得我最早用的wordpress是什么版本号了，总之一路升级过来经历了很多个版本，模板也因为各版本的升级改动了很多。特别是当wordpress 2.7出来的时候，我们再也不需要使用第三方插件来实现评论的嵌套了，因为它已经内置了。由于我的懒散以及一直假装很忙作为借口，并且舍不得之前的评论模式，所以一直没有让我的主题支持原生的嵌套评论。&lt;br /&gt;
&lt;span id=&quot;more-1768&quot;&gt;&lt;/span&gt;&lt;br /&gt;
昨天心血来潮，关了IM，关了google reader，关了可能会干扰我的各类网页，开始琢磨wordpress 2.7的原生嵌套。一开始是直接套用的default主题里的comment.php文件，由于2.7版本之后引入了wp_list_comments()函数来显示评论列表，而想特别修改评论列表格式的话就需要使用callback。主要参考了 &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.saywp.com/wordpress/add-reply-function-in-wordpress-thread-comment-with-jquery.html&quot;&gt;saywp&lt;/a&gt; 主题的callback代码，然后参考了 &lt;a href=&quot;http://willin.heliohost.org/?p=1271&quot; rel=&quot;nofollow&quot;&gt;willin&lt;/a&gt;实现的ajax。虽然累死我了，好歹是修改成功了。willin 的ajax 评论代码改了好久，因为他的代码写得可真多，我去掉了很多对自己没用的并且在ajax插入嵌套评论到评论列表的时候换了一种更好的实现方法。&lt;/p&gt;
&lt;p&gt;如果你的主题还是2.7之前的无嵌套评论，并且你喜欢嵌套评论，我建议你还是趁早升级吧哈。wordpress版本号越来越大，改动也越来越大，如果以后再升级可就要越来越不容易了。正所谓与时俱进嘛。更何况我是个“新版软件控”！&lt;/p&gt;
&lt;p&gt;至于让主题支持原生嵌套评论我这里就不介绍了，网上真的有一搜一大把的文章介绍了这个内容。&lt;/p&gt;
&lt;p&gt;为了让评论向前兼容，所以我的嵌套评论保留了原来的@username的回复方式，哪怕哪一天我突然不想嵌套了，我也可以很快恢复原先的样式并且保留之前的完美形式(鼠标移动到@username会popup出user的原评论)！正因为继续保留了之前的@username的回复方式，所以我认为我的评论只需要采用二级嵌套就足够了，三级或者更多级的话不管是样式不好设计和控制，而且太多回复的时候很容易造成混乱的局面。二级嵌套的意义在于每一条评论表达的是评论者的核心价值观，对此的嵌套回复一般是对该条评论的回复，如果多一级成为三级嵌套，很容易就变成聊天了，确实很三级。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/01/20100110_threadcomment.gif&quot; alt=&quot;Wordpress 原生嵌套评论ajax的实现&quot; /&gt;&lt;/p&gt;
&lt;p&gt;欢迎测试！&lt;/p&gt;
&lt;p&gt;PS:真的是累坏了。接下来，还有一大堆别的要累坏我的事情要做。360度冰天雪地托马斯回旋45度角仰望天空直至内牛满面鸡皮疙瘩掉一地。&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/wordpress-ajax-thread-comments/&quot;&gt;http://leeiio.me/wordpress-ajax-thread-comments/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 41 &lt;/strong&gt;条,大家讨论的如此激烈,你为什么不过去瞧瞧?!&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;年度曖昧文章&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110543/1studio/feedsky/s.gif?r=http://leeiio.me/wordpress-ajax-thread-comments/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/wordpress-ajax-thread-comments/feed/</wfw:commentRss><slash:comments>41</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110543/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110543/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;我都快不记得我最早用的wordpress是什么版本号了，总之一路升级过来经历了很多个版本，模板也因为各版本的升级改动了很多。特别是当wordpress 2.7出来的时候，我们再也不需要使用第三方插件来实现评论的嵌套了，因为它已经内置了。由于我的懒散以及一直假装很忙作为借口，并且舍不得之前的评论模式，所以一直没有让我的主题支持原生的嵌套评论。

昨天心血来潮，关了IM，关了google reader，关了可能会干扰我的各类网页，开始琢磨wordpress 2.7的原生嵌套。一开始是直接套用的default主题里的comment.php文件，由于2.7版本之后引入了wp_list_comments()函数来显示评论列表，而想特别修改评论列表格式的话就需要使用callback。主要参考了 saywp 主题的callback代码，然后参考了 willin实现的ajax。虽然累死我了，好歹是修改成功了。willin 的ajax 评论代码改了好久，因为他的代码写得可真多，我去掉了很多对自己没用的并且在ajax插入嵌套评论到评论列表的时候换了一种更好的实现方法。
如果你的主题还是2.7之前的无嵌套评论，并且你喜欢嵌套评论，我建议你还是趁早升级吧哈。wordpress版本号越来越大，改动也越来越大，如果以后再升级可就要越来越不容易了。正所谓与时俱进嘛。更何况我是个“新版软件控”！
至于让主题支持原生嵌套评论我这里就不介绍了，网上真的有一搜一大把的文章介绍了这个内容。
为了让评论向前兼容，所以我的嵌套评论保留了原来的@username的回复方式，哪怕哪一天我突然不想嵌套了，我也可以很快恢复原先的样式并且保留之前的完美形式(鼠标移动到@username会popup出user的原评论)！正因为继续保留了之前的@username的回复方式，所以我认为我的评论只需要采用二级嵌套就足够了，三级或者更多级的话不管是样式不好设计和控制，而且太多回复的时候很容易造成混乱的局面。二级嵌套的意义在于每一条评论表达的是评论者的核心价值观，对此的嵌套回复一般是对该条评论的回复，如果多一级成为三级嵌套，很容易就变成聊天了，确实很三级。

欢迎测试！
PS:真的是累坏了。接下来，还有一大堆别的要累坏我的事情要做。360度冰天雪地托马斯回旋45度角仰望天空直至内牛满面鸡皮疙瘩掉一地。

本文地址:http://leeiio.me/wordpress-ajax-thread-comments/截至您的阅读器抓取时已有评论 41 条,大家讨论的如此激烈,你为什么不过去瞧瞧?!©Copyright 2007-2009 Leeiio Chaos Made http://Leeiio.me本站更換RSS地址：http://feed.leeiio.me，麻煩大家更新下，謝謝！
声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 Leeiio.me
 年度曖昧文章&lt;img src=&quot;http://www1.feedsky.com/t1/341110543/1studio/feedsky/s.gif?r=http://leeiio.me/wordpress-ajax-thread-comments/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>thread comment</category><category>嵌套评论</category><category>Wordpress</category><category>ajax comment</category><pubDate>Sun, 10 Jan 2010 17:37:00 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/wordpress-ajax-thread-comments/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1768</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/wordpress-ajax-thread-comments/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110543/4400837</fs:itemid></item><item><title>一日复一日， 一年复一年</title><link>http://leeiio.me/2010-newyear/</link><content:encoded>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110544/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110544/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://imgs.leeiio.me/blogimgs/2010/01/20100101_newyear.jpg&quot; title=&quot;杭州银泰&quot; alt=&quot;2010年元旦快乐 杭州银泰&quot; /&gt;&lt;br /&gt;
&lt;embed src=&quot;http://www.8box.com/feed/cccccc_s_693997_/mini.swf&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;160&quot; height=&quot;32&quot;&gt;&lt;/embed&gt;&lt;br /&gt;
我真的很不喜欢在这样的日子这样的天气这样的地点出门做这样的事情啊。&lt;br /&gt;
大家新的一年里继续该干嘛干嘛，2010元旦快乐！&lt;br /&gt;
&lt;span id=&quot;more-1763&quot;&gt;&lt;/span&gt;&lt;br /&gt;
每一个节日都是商场老板合不拢嘴的时候，特别是元旦。看看人流便知道了。&lt;br /&gt;
满500减330，满500减160。&lt;br /&gt;
我知道，新款又被你们给藏起来了。&lt;/p&gt;

&lt;p&gt;本文地址:&lt;a href=&quot;http://leeiio.me/2010-newyear/&quot;&gt;http://leeiio.me/2010-newyear/&lt;a&gt;&lt;/p&gt;截至您的阅读器抓取时已有评论&lt;strong&gt; 25 &lt;/strong&gt;条,欢迎您也过来留下您的意见 !&lt;hr /&gt;©Copyright 2007-2009 Leeiio Chaos Made &lt;a href=&quot;http://leeiio.me&quot; target=&quot;_blank&quot;&gt;http://Leeiio.me&lt;/a&gt;&lt;br /&gt;&lt;font style=&quot;font-size:15px;font-weight:bold&quot;&gt;本站更換RSS地址：&lt;a href=&quot;http://feed.leeiio.me&quot; title=&quot;戳我訂閱最新rss地址&quot;&gt;&lt;font color=&quot;red&quot;&gt;http://feed.leeiio.me&lt;/font&gt;&lt;/a&gt;，麻煩大家更新下，謝謝！&lt;/font&gt;&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;声明:&lt;/strong&gt; 本站遵循 &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;署名-非商业性使用-相同方式共享 3.0&lt;/a&gt; 共享协议. 转载请注明转自 &lt;a href=&quot;http://leeiio.me&quot;&gt;Leeiio.me&lt;/a&gt;
&lt;img src=&quot;http://img.tongji.linezing.com/990626/tongji.gif&quot;/&gt;&lt;/p&gt; &lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;年度曖昧文章&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/341110544/1studio/feedsky/s.gif?r=http://leeiio.me/2010-newyear/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://leeiio.me/2010-newyear/feed/</wfw:commentRss><slash:comments>25</slash:comments><description>&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/1studio/341110544/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/1studio/341110544/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;我真的很不喜欢在这样的日子这样的天气这样的地点出门做这样的事情啊。
大家新的一年里继续该干嘛干嘛，2010元旦快乐！

每一个节日都是商场老板合不拢嘴的时候，特别是元旦。看看人流便知道了。
满500减330，满500减160。
我知道，新款又被你们给藏起来了。

本文地址:http://leeiio.me/2010-newyear/截至您的阅读器抓取时已有评论 25 条,欢迎您也过来留下您的意见 !©Copyright 2007-2009 Leeiio Chaos Made http://Leeiio.me本站更換RSS地址：http://feed.leeiio.me，麻煩大家更新下，謝謝！
声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 Leeiio.me
 年度曖昧文章&lt;img src=&quot;http://www1.feedsky.com/t1/341110544/1studio/feedsky/s.gif?r=http://leeiio.me/2010-newyear/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>杭州银泰</category><category>混合，雜亂無章。</category><category>元旦快乐</category><pubDate>Fri, 01 Jan 2010 22:19:36 +0800</pubDate><author>Leeiio</author><comments>http://leeiio.me/2010-newyear/#comments</comments><guid isPermaLink="false">http://leeiio.me/?p=1763</guid><dc:creator>Leeiio</dc:creator><fs:srclink>http://leeiio.me/2010-newyear/</fs:srclink><fs:srcfeed>http://leeiio.me/feed/</fs:srcfeed><fs:itemid>feedsky/1studio/~7316938/341110544/4400837</fs:itemid></item></channel></rss>