<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生活在远方 &#187; 例子</title>
	<atom:link href="http://www.rsywx.net/wordpress/tag/%e4%be%8b%e5%ad%90/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rsywx.net/wordpress</link>
	<description>是的，因为真正的生活是在远方</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:55:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>【jQuery】示例5：一个简单的投票系统</title>
		<link>http://www.rsywx.net/wordpress/2009/05/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b5%ef%bc%9a%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e6%8a%95%e7%a5%a8%e7%b3%bb%e7%bb%9f/</link>
		<comments>http://www.rsywx.net/wordpress/2009/05/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b5%ef%bc%9a%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e6%8a%95%e7%a5%a8%e7%b3%bb%e7%bb%9f/#comments</comments>
		<pubDate>Sat, 09 May 2009 23:32:10 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery api browser]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/2009/05/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b5%ef%bc%9a%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e6%8a%95%e7%a5%a8%e7%b3%bb%e7%bb%9f/</guid>
		<description><![CDATA[今天抽空完成了jQuery的示例5：一个简单的投票系统。 本例没有什么特殊的地方。只有一点。投票系统至少需要两个参数：一个是投票项目的id，一个是投票的方向（支持还是反对），所以我这样构造一个a元素： &#60;a href='#' class='up' id='&#60;?php echo $row&#91;'vid'&#93;?&#62;'&#62;&#60;?php echo $row&#91;'up'&#93;?&#62;&#60;/a&#62; 我用class来确定投票方向，而用id来确定投票项目。 最后，我用jQuery中的replaceWith来替代掉被点击的a元素的内容为： $&#40;this&#41;.replaceWith&#40;&#34;&#60;strong&#62;&#34;+count+&#34;&#60;/strong&#62;&#34;&#41;; 大功告成！]]></description>
			<content:encoded><![CDATA[<p>今天抽空完成了jQuery的示例5：<a href="http://www.rsywx.net/jquery/demos/test05.php">一个简单的投票系统</a>。</p>
<p>本例没有什么特殊的地方。只有一点。投票系统至少需要两个参数：一个是投票项目的id，一个是投票的方向（支持还是反对），所以我这样构造一个a元素：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;a href='#' class='up' id='<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'vid'</span><span style="color: #009900;">&#93;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>'&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'up'</span><span style="color: #009900;">&#93;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;</pre></div></div>

<p>我用class来确定投票方向，而用id来确定投票项目。</p>
<p>最后，我用jQuery中的replaceWith来替代掉被点击的a元素的内容为：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replaceWith</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;strong&gt;&quot;</span><span style="color: #339933;">+</span>count<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/strong&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>大功告成！</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2009/05/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b5%ef%bc%9a%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e6%8a%95%e7%a5%a8%e7%b3%bb%e7%bb%9f/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2009/05/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b5%ef%bc%9a%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e6%8a%95%e7%a5%a8%e7%b3%bb%e7%bb%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例9：检查用户名是否存在</title>
		<link>http://www.rsywx.net/wordpress/2009/03/25/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b9%ef%bc%9a%e6%a3%80%e6%9f%a5%e7%94%a8%e6%88%b7%e5%90%8d%e6%98%af%e5%90%a6%e5%ad%98%e5%9c%a8/</link>
		<comments>http://www.rsywx.net/wordpress/2009/03/25/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b9%ef%bc%9a%e6%a3%80%e6%9f%a5%e7%94%a8%e6%88%b7%e5%90%8d%e6%98%af%e5%90%a6%e5%ad%98%e5%9c%a8/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 13:24:01 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/2009/03/1595</guid>
		<description><![CDATA[今天完成了jQuery的示例9：检查用户名是否存在。之所以做这个例子，一是因为要保证完整性，另一个是在CSDN的PHP板块有很多人问到这个。 演示地址：http://www.rsywx.net/jquery/demos/test09.html。 代码都很简单，不再列出。有兴趣的可以直接下载后分析。 特别提出一点：在代码中，我在jQuery中调用JSON函数处理返回值的时候，由于返回值很简单（true或者false的布尔值），所以直接对返回的data进行了判断，实践证明是可行的。 Technorati : JavaScript, demos, jQuery, 例子 Del.icio.us : JavaScript, demos, jQuery, 例子 Zooomr : JavaScript, demos, jQuery, 例子 Flickr : JavaScript, demos, jQuery, 例子]]></description>
			<content:encoded><![CDATA[<p>今天完成了jQuery的示例9：检查用户名是否存在。之所以做这个例子，一是因为要保证完整性，另一个是在CSDN的PHP板块有很多人问到这个。</p>
<p>演示地址：<a href="http://www.rsywx.net/jquery/demos/test09.html">http://www.rsywx.net/jquery/demos/test09.html</a>。</p>
<p>代码都很简单，不再列出。有兴趣的可以直接下载后分析。</p>
<p>特别提出一点：在代码中，我在jQuery中调用JSON函数处理返回值的时候，由于返回值很简单（true或者false的布尔值），所以直接对返回的data进行了判断，实践证明是可行的。</p>
<p xmlns="" class="zoundry_raven_tags">  <!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com -->  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://www.technorati.com/tag/JavaScript" class="ztag" rel="tag">JavaScript</a>, <a href="http://www.technorati.com/tag/demos" class="ztag" rel="tag">demos</a>, <a href="http://www.technorati.com/tag/jQuery" class="ztag" rel="tag">jQuery</a>, <a href="http://www.technorati.com/tag/%E4%BE%8B%E5%AD%90" class="ztag" rel="tag">例子</a></span>  <br/> <span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/JavaScript" class="ztag" rel="tag">JavaScript</a>, <a href="http://del.icio.us/tag/demos" class="ztag" rel="tag">demos</a>, <a href="http://del.icio.us/tag/jQuery" class="ztag" rel="tag">jQuery</a>, <a href="http://del.icio.us/tag/%E4%BE%8B%E5%AD%90" class="ztag" rel="tag">例子</a></span>  <br/> <span class="ztags"><span class="ztagspace">Zooomr</span> : <a href="http://www.zooomr.com/search/photos/?q=JavaScript" class="ztag" rel="tag">JavaScript</a>, <a href="http://www.zooomr.com/search/photos/?q=demos" class="ztag" rel="tag">demos</a>, <a href="http://www.zooomr.com/search/photos/?q=jQuery" class="ztag" rel="tag">jQuery</a>, <a href="http://www.zooomr.com/search/photos/?q=%E4%BE%8B%E5%AD%90" class="ztag" rel="tag">例子</a></span>  <br/> <span class="ztags"><span class="ztagspace">Flickr</span> : <a href="http://www.flickr.com/photos/tags/JavaScript" class="ztag" rel="tag">JavaScript</a>, <a href="http://www.flickr.com/photos/tags/demos" class="ztag" rel="tag">demos</a>, <a href="http://www.flickr.com/photos/tags/jQuery" class="ztag" rel="tag">jQuery</a>, <a href="http://www.flickr.com/photos/tags/%E4%BE%8B%E5%AD%90" class="ztag" rel="tag">例子</a></span> </p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2009/03/25/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b9%ef%bc%9a%e6%a3%80%e6%9f%a5%e7%94%a8%e6%88%b7%e5%90%8d%e6%98%af%e5%90%a6%e5%ad%98%e5%9c%a8/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2009/03/25/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b9%ef%bc%9a%e6%a3%80%e6%9f%a5%e7%94%a8%e6%88%b7%e5%90%8d%e6%98%af%e5%90%a6%e5%ad%98%e5%9c%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例8：手风琴式的控制</title>
		<link>http://www.rsywx.net/wordpress/2009/01/17/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b8%ef%bc%9a%e6%89%8b%e9%a3%8e%e7%90%b4%e5%bc%8f%e7%9a%84%e6%8e%a7%e5%88%b6/</link>
		<comments>http://www.rsywx.net/wordpress/2009/01/17/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b8%ef%bc%9a%e6%89%8b%e9%a3%8e%e7%90%b4%e5%bc%8f%e7%9a%84%e6%8e%a7%e5%88%b6/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 00:44:22 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1406</guid>
		<description><![CDATA[遵照由简到繁的原则，我继续完成“手风琴式的控制”，示例见此处。 在jQuery中实现手风琴式的控制十分简单： &#60;script src=&#34;../ui/ui.core.js&#34;&#62;&#60;/script&#62; &#60;script src=&#34;../ui/ui.accordion.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34;&#62; $&#40;document&#41;.ready&#40; function&#40;&#41; &#123; $&#40;&#34;#accordion&#34;&#41;.accordion&#40;&#41;; &#125; &#41;; &#60;/script&#62; 两个额外的js文件可以从jQuery网站下载，也可以直接远程引用。 html的代码采用ul/li组合写成： &#60;ul id=&#34;accordion&#34;&#62; &#60;li&#62; &#60;a href=&#34;#&#34;&#62;Section 1&#60;/a&#62; &#60;div&#62;Line 1.&#60;br/&#62; Line 1.&#60;br/&#62; Line 1.&#60;br/&#62; Line 1.&#60;/div&#62; &#60;/li&#62; &#60;li&#62; &#60;a href=&#34;#&#34;&#62;Section 2&#60;/a&#62; &#60;div&#62;Line 2.&#60;br/&#62; Line 2.&#60;br/&#62; Line 2.&#60;br/&#62; &#60;/li&#62; ... &#60;/ul&#62; 实在是很简单，而且很干净，彻底分离了html和js代码。]]></description>
			<content:encoded><![CDATA[<p>遵照由简到繁的原则，我继续完成“手风琴式的控制”，示例见<a href="http://www.rsywx.net/jquery/demos/test08.html">此处</a>。</p>
<p>在jQuery中实现手风琴式的控制十分简单：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;script src=&quot;../ui/ui.core.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;../ui/ui.accordion.js&quot;&gt;&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
            $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span>
            <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#accordion&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">accordion</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>两个额外的js文件可以从jQuery网站下载，也可以直接远程引用。</p>
<p>html的代码采用ul/li组合写成：</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;ul id=&quot;accordion&quot;&gt;
  &lt;li&gt;
    &lt;a href=&quot;#&quot;&gt;Section 1&lt;/a&gt;
      &lt;div&gt;Line 1.&lt;br/&gt;
      Line 1.&lt;br/&gt;
      Line 1.&lt;br/&gt;
      Line 1.&lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;#&quot;&gt;Section 2&lt;/a&gt;
     &lt;div&gt;Line 2.&lt;br/&gt;
     Line 2.&lt;br/&gt;
     Line 2.&lt;br/&gt;
   &lt;/li&gt;
   ...
&lt;/ul&gt;</pre></div></div>

<p>实在是很简单，而且很干净，彻底分离了html和js代码。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2009/01/17/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b8%ef%bc%9a%e6%89%8b%e9%a3%8e%e7%90%b4%e5%bc%8f%e7%9a%84%e6%8e%a7%e5%88%b6/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2009/01/17/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b8%ef%bc%9a%e6%89%8b%e9%a3%8e%e7%90%b4%e5%bc%8f%e7%9a%84%e6%8e%a7%e5%88%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例6：可以伸展的面板</title>
		<link>http://www.rsywx.net/wordpress/2008/12/28/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b6%ef%bc%9a%e5%8f%af%e4%bb%a5%e4%bc%b8%e5%b1%95%e7%9a%84%e9%9d%a2%e6%9d%bf/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/28/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b6%ef%bc%9a%e5%8f%af%e4%bb%a5%e4%bc%b8%e5%b1%95%e7%9a%84%e9%9d%a2%e6%9d%bf/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 05:45:02 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1320</guid>
		<description><![CDATA[是的，这个是示例6，而不是计划中的示例5（投票系统）。因为在jQuery中，进行可以伸展的面板的处理非常简单，只要一个toggle()函数就可以。 核心代码如下： var i=0; $&#40;document&#41;.ready&#40; function&#40;&#41; &#123; $&#40;&#34;div&#34;&#41;.filter&#40;&#34;#clickme&#34;&#41;.click&#40; function&#40;&#41; &#123; i++; $&#40;&#34;div&#34;&#41;.filter&#40;&#34;#content&#34;&#41;.toggle&#40;&#41;; if&#40;i%2==0&#41; &#123; $&#40;this&#41;.text&#40;&#34;Click here to expand.&#34;&#41;; &#125; else &#123; $&#40;this&#41;.text&#40;&#34;Click here to collapse.&#34;&#41;; &#125; &#125; &#41;; &#125; &#41;; 我用了一个变量i来判断要操作的div是处在显示还是隐藏状态，并相应的修改提示文字。通过查看jQuery的源代码，可以知道这也是jQuery中toggle使用的方法。 示例见此处。]]></description>
			<content:encoded><![CDATA[<p>是的，这个是示例6，而不是计划中的示例5（投票系统）。因为在jQuery中，进行可以伸展的面板的处理非常简单，只要一个toggle()函数就可以。</p>
<p>核心代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span>
    <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#clickme&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
            <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                i<span style="color: #339933;">++;</span>
                $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#content&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">%</span>2<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#123;</span>
                    $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Click here to expand.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">else</span>
                <span style="color: #009900;">&#123;</span>
                    $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Click here to collapse.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>我用了一个变量i来判断要操作的div是处在显示还是隐藏状态，并相应的修改提示文字。通过查看jQuery的源代码，可以知道这也是jQuery中toggle使用的方法。</p>
<p>示例见<a href="http://www.rsywx.net/jquery/demos/test06.html">此处</a>。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/28/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b6%ef%bc%9a%e5%8f%af%e4%bb%a5%e4%bc%b8%e5%b1%95%e7%9a%84%e9%9d%a2%e6%9d%bf/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/28/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b6%ef%bc%9a%e5%8f%af%e4%bb%a5%e4%bc%b8%e5%b1%95%e7%9a%84%e9%9d%a2%e6%9d%bf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例4：三层的关联下拉框</title>
		<link>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 09:08:44 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1278</guid>
		<description><![CDATA[有了两层关联下拉框的经验，实现三层的关联下拉框确实很容易。 当然，为了被前令狐同学再次BS我的算法BT，我首先改写了clearOptions函数： function clearOptions&#40;selectID&#41; &#123; var sel=document.getElementById&#40;selectID&#41;; var len=sel.length; var i; &#160; for&#40;i=1;i&#60;len;i++&#41; sel.remove&#40;1&#41;; // I keep on removing the 1st item in the select! &#125; 说明一下，我这样编程是有一定的道理的。虽然说，更“好”的代码应该似乎是每次都删除最后一个（类似：remove(sel.length)）。但是，由于每次删除后，sel.length都会发生变化，所以在每次删除最后一个的时候，sel.length都会被重新取值，这个对于jQuery来说开销还是很大的，特别是如果select下的option比较多的时候。所以，我还是选择每次删除第一个的做法。这样，remove(1)中的参数是个常量，只需要取值一次从而大大的缩减了运行时间。 同时我将addOption，fillLevel等多次调用的代码段抽出作为独立的函数。在fillLevel函数中，还特意混合了jQuery和标准javascript。 这样一来，jQuery的ready函数写法就更清晰明了了。同时，为了温故知新，我还加入了在第二个例子中实现的“Loading”提示。目前的问题时，在填充level1的时候，不会出现这个提示，而只有在填充level2和level3的时候才出现这个提示。暂时不管这个小小的问题了。 完整的示范在此处。 代码不再贴出，有兴趣的可以在页面自行下载研究。]]></description>
			<content:encoded><![CDATA[<p>有了两层关联下拉框的经验，实现三层的关联下拉框确实很容易。</p>
<p>当然，为了被前令狐同学再次BS我的算法BT，我首先改写了clearOptions函数：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> clearOptions<span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> sel<span style="color: #339933;">=</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> len<span style="color: #339933;">=</span>sel.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>len<span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        sel.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// I keep on removing the 1st item in the select!</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>说明一下，我这样编程是有一定的道理的。虽然说，更“好”的代码应该似乎是每次都删除最后一个（类似：remove(sel.length)）。但是，由于每次删除后，sel.length都会发生变化，所以在每次删除最后一个的时候，sel.length都会被重新取值，这个对于jQuery来说开销还是很大的，特别是如果select下的option比较多的时候。所以，我还是选择每次删除第一个的做法。这样，remove(1)中的参数是个常量，只需要取值一次从而大大的缩减了运行时间。</p>
<p>同时我将addOption，fillLevel等多次调用的代码段抽出作为独立的函数。在fillLevel函数中，还特意混合了jQuery和标准javascript。</p>
<p>这样一来，jQuery的ready函数写法就更清晰明了了。同时，为了温故知新，我还加入了在第二个例子中实现的“Loading”提示。目前的问题时，在填充level1的时候，不会出现这个提示，而只有在填充level2和level3的时候才出现这个提示。暂时不管这个小小的问题了。</p>
<p>完整的示范在<a href="http://www.rsywx.net/jquery/demos/test04.html">此处</a>。</p>
<p>代码不再贴出，有兴趣的可以在页面自行下载研究。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/14/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b4%ef%bc%9a%e4%b8%89%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例3：两层的关联下拉框</title>
		<link>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 14:17:50 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1238</guid>
		<description><![CDATA[今天终于完成了jQuery的一个确实有用的示例：两层的关联下拉框（2 Level Cascading Dropdown list）。示例见此处。 开始，我以为很简单。但是经过实战，还是有一些些小的技巧需要注意。 JSON的返回值是一个问题。在这个示例中，由于我并不关注返回值的问题（这个问题将在示例4中进一步研究），所以我只是简单返回一个字符串的数组。 我遇到的第二个问题，是如何给select加option的问题。开始我用如下的代码： var opt=document.createElement&#40;&#34;option&#34;&#41;; opt.value=n; opt.text=i; &#160; $&#40;&#34;select&#34;&#41;.filter&#40;&#34;#level1&#34;&#41;.append&#40;opt&#41;; 这样做，在Fx下是可以了，但是在IE下不行：option加入正常，但是没有文本显示。所以，我采用更标准的JavaScript写法： var opt=new Option&#40;&#34;Option &#34;+i, n&#41;; document.getElementById&#40;&#34;level2&#34;&#41;.options.add&#40;opt&#41;; 于是，Fx和IE都正常了……世界终于清净了…… 还没有完。每次我点击或者在level1中更改选项时，level1和level2都会不断的增加option，我需要在增加之前将原来的option进行清除。于是我再次借用标准的JavaScript： function clearOption&#40;selectID&#41; &#123; var obj; obj=document.getElementById&#40;selectID&#41;; var i; for&#40;i=1;i&#60;obj.length;i++&#41; &#123; obj.remove&#40;i&#41;; i--; &#125; &#125; 这里有一些技巧。我故意用一种比较笨的方法：从1（不是0，因为从0开始会把那个&#8212;的选项一起删除了）开始循环到options数组的长度。但是由于每次删除一个选项后，长度就会减1，且原来1的项目删除后，原来2的项目变成了1，所以，我必须用i&#8211;将i缩小一次。更好的方法是从最后一个元素开始删除，每次也只删除最后一个元素。有兴趣的可以自己完成。 这个代码是我在NetBeans IDE下完成的。它对jQuery支持的很好，有jQuery的代码提示，省去我遍寻API的烦恼。]]></description>
			<content:encoded><![CDATA[<p>今天终于完成了jQuery的一个确实有用的示例：两层的关联下拉框（2 Level Cascading Dropdown list）。示例见<a href="http://www.rsywx.net/jquery/demos/test03.html">此处</a>。  开始，我以为很简单。但是经过实战，还是有一些些小的技巧需要注意。  JSON的返回值是一个问题。在这个示例中，由于我并不关注返回值的问题（这个问题将在示例4中进一步研究），所以我只是简单返回一个字符串的数组。  <span id="more-1238"></span> 我遇到的第二个问题，是如何给select加option的问题。开始我用如下的代码：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> opt<span style="color: #339933;">=</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;option&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
opt.<span style="color: #660066;">value</span><span style="color: #339933;">=</span>n<span style="color: #339933;">;</span>
opt.<span style="color: #660066;">text</span><span style="color: #339933;">=</span>i<span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;select&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#level1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>opt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样做，在Fx下是可以了，但是在IE下不行：option加入正常，但是没有文本显示。所以，我采用更标准的JavaScript写法：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> opt<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Option<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Option &quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;level2&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">options</span>.<span style="color: #660066;">add</span><span style="color: #009900;">&#40;</span>opt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>于是，Fx和IE都正常了……世界终于清净了……  还没有完。每次我点击或者在level1中更改选项时，level1和level2都会不断的增加option，我需要在增加之前将原来的option进行清除。于是我再次借用标准的JavaScript：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> clearOption<span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> obj<span style="color: #339933;">;</span>
      obj<span style="color: #339933;">=</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>selectID<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>obj.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
      <span style="color: #009900;">&#123;</span>
        obj.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        i<span style="color: #339933;">--;</span>
      <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span></pre></div></div>

<p>这里有一些技巧。我故意用一种比较笨的方法：从1（不是0，因为从0开始会把那个&#8212;的选项一起删除了）开始循环到options数组的长度。但是由于每次删除一个选项后，长度就会减1，且原来1的项目删除后，原来2的项目变成了1，所以，我必须用i&#8211;将i缩小一次。更好的方法是从最后一个元素开始删除，每次也只删除最后一个元素。有兴趣的可以自己完成。  这个代码是我在NetBeans IDE下完成的。它对jQuery支持的很好，有jQuery的代码提示，省去我遍寻API的烦恼。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/10/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b3%ef%bc%9a%e4%b8%a4%e5%b1%82%e7%9a%84%e5%85%b3%e8%81%94%e4%b8%8b%e6%8b%89%e6%a1%86/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例2：显示一个“Loading”提示</title>
		<link>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/</link>
		<comments>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 12:42:07 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1214</guid>
		<description><![CDATA[今天完成了一个在进行耗时长久的操作时，为了不让用户感到无聊而显示一个“载入中，请稍安勿躁”之类提示的小例子。 演示地址：此处。 ============== 为了使这个“耗时长久”的操作显得真实一些，我决定让我的jQuery通过ajax去调用一个PHP文件，并从PHP文件那里返回一些东西。当然，这只是一个demo，PHP文件不用太复杂： $t=rand&#40;3,6&#41;; sleep&#40;$t&#41;; $arr=array&#40;&#34;t&#34;=&#62;$t, &#34;foo&#34;=&#62;&#34;bar&#34;&#41;; $jarr=json_encode&#40;$arr&#41;; echo $jarr; 值得注意的有两点： 第一，在返回到jQuery之前，我先用PHP函数json_encode将要返回的东西进行JSON编码。JSON是很通用的编码规范，jQuery、PHP都支持； 第二，返回需要用到的不是return，而是echo。这个很特别。我开始用的是return，然后在jQuery中死活得不到返回的数据流。 核心的jQuery代码是： var time_elapsed; var action; $&#40;document&#41;.ready&#40; &#160; function&#40;&#41; &#123; $&#40;&#34;a&#34;&#41;.filter&#40;&#34;#long&#34;&#41;.click&#40; function&#40;event&#41; &#123; event.preventDefault&#40;&#41;; $.getJSON&#40;&#34;ajaxcall.php&#34;, function&#40;json&#41; &#123; time_elapsed=json.t; action=json.foo; &#125; &#41;; &#125; &#41;; &#160; $&#40;&#34;div&#34;&#41;.filter&#40;&#34;#div01&#34;&#41;.ajaxStart&#40; function&#40;&#41; &#123; $&#40;this&#41;.slideDown&#40;&#34;slow&#34;&#41;; &#125; &#41;.ajaxComplete&#40; function&#40;&#41; &#123; alert&#40;&#34;本次&#34;+action+&#34;的操作耗时&#34;+time_elapsed+&#34;秒。&#34;&#41;; $&#40;this&#41;.fadeOut&#40;&#34;slow&#34;&#41;; &#125; &#41;; &#125; &#41;; 这里需要注意三点： 第一，变量的说明要在所有函数体之外，类似全局变量。虽然使用全局变量不好，但是在这样小规模的代码段中，也是可以接受的； 第二，请注意获得json数据流中变量的方法。由于在PHP中我是用JSON编码我的返回值，所以我必须用getJSON去调用PHP文件，从而获得数据。同时，可以注意到，经由getJSON得到的数据已经变成了一个对象数组，我可以用json.t，json.foo这样很直观的方法来获取返回值。 第三，请注意ajax调用和针对ajax调用时状态处理函数的声明。ajax的调用必须用$.getJSON的方式；而ajax调用状态中最重要的就是ajaxStart和ajaxComplete。 [...]]]></description>
			<content:encoded><![CDATA[<p>今天完成了一个在进行耗时长久的操作时，为了不让用户感到无聊而显示一个“载入中，请稍安勿躁”之类提示的小例子。</p>
<p>演示地址：<a href="http://www.rsywx.net/jquery/demos/test02.html">此处</a>。</p>
<p>==============</p>
<p><span id="more-1214"></span></p>
<p>为了使这个“耗时长久”的操作显得真实一些，我决定让我的jQuery通过ajax去调用一个PHP文件，并从PHP文件那里返回一些东西。当然，这只是一个demo，PHP文件不用太复杂：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$t</span><span style="color: #339933;">=</span><span style="color: #990000;">rand</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$t</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$arr</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;t&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$t</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;bar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$jarr</span><span style="color: #339933;">=</span><span style="color: #990000;">json_encode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$jarr</span><span style="color: #339933;">;</span></pre></div></div>

<p>值得注意的有两点：</p>
<p>第一，在返回到jQuery之前，我先用PHP函数json_encode将要返回的东西进行JSON编码。JSON是很通用的编码规范，jQuery、PHP都支持；</p>
<p>第二，返回需要用到的不是return，而是echo。这个很特别。我开始用的是return，然后在jQuery中死活得不到返回的数据流。</p>
<p>核心的jQuery代码是：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #003366; font-weight: bold;">var</span> time_elapsed<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> action<span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#long&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				event.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ajaxcall.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>json<span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						time_elapsed<span style="color: #339933;">=</span>json.<span style="color: #660066;">t</span><span style="color: #339933;">;</span>
						action<span style="color: #339933;">=</span>json.<span style="color: #660066;">foo</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#div01&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ajaxStart</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ajaxComplete</span><span style="color: #009900;">&#40;</span>
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;本次&quot;</span><span style="color: #339933;">+</span>action<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;的操作耗时&quot;</span><span style="color: #339933;">+</span>time_elapsed<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;秒。&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这里需要注意三点：</p>
<p>第一，变量的说明要在所有函数体之外，类似全局变量。虽然使用全局变量不好，但是在这样小规模的代码段中，也是可以接受的；</p>
<p>第二，请注意获得json数据流中变量的方法。由于在PHP中我是用JSON编码我的返回值，所以我必须用getJSON去调用PHP文件，从而获得数据。同时，可以注意到，经由getJSON得到的数据已经变成了一个对象数组，我可以用json.t，json.foo这样很直观的方法来获取返回值。</p>
<p>第三，请注意ajax调用和针对ajax调用时状态处理函数的声明。ajax的调用必须用$.getJSON的方式；而ajax调用状态中最重要的就是ajaxStart和ajaxComplete。</p>
<p>So far, so good.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/12/02/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b2%ef%bc%9a%e6%98%be%e7%a4%ba%e4%b8%80%e4%b8%aa%e2%80%9cloading%e2%80%9d%e6%8f%90%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【jQuery】示例1：动态改变文本样式和内容</title>
		<link>http://www.rsywx.net/wordpress/2008/11/29/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b1%ef%bc%9a%e5%8a%a8%e6%80%81%e6%94%b9%e5%8f%98%e6%96%87%e6%9c%ac%e6%a0%b7%e5%bc%8f%e5%92%8c%e5%86%85%e5%ae%b9/</link>
		<comments>http://www.rsywx.net/wordpress/2008/11/29/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b1%ef%bc%9a%e5%8a%a8%e6%80%81%e6%94%b9%e5%8f%98%e6%96%87%e6%9c%ac%e6%a0%b7%e5%bc%8f%e5%92%8c%e5%86%85%e5%ae%b9/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 12:20:53 +0000</pubDate>
		<dc:creator>tr</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[编程、软件、技术]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.rsywx.net/wordpress/?p=1199</guid>
		<description><![CDATA[示范例子见：此处。 ========================= 经过一段时间和XAJAX的较劲，我发现了它的一些限制——当然，它还是一个很好的ajax框架： 在XAJAX的调用中，我不能获得Smarty模板渲染后的内容。因而，想要借助这个方法而动态增加动态内容是不可能了； 诸如onclick()/on????()等事件处理必须和一个HTML元素硬编码在一起，这会使得MVC结构出现了些许松散。 那么，有备用方案吗？有的，我选择了jQuery。 本章中的例子是一个很简单的例子。但是它包含了可能是jQuery中最重要的一个组成部分：选择。我们不光要选择哪些（个）控件要响应我们的行为，也要选择这个行为需要对哪些（个）控件起作用。 首先，我要找到响应我动作的控件。我知道它应该是一个按钮。但问题是，页面中有两个按钮，我该怎么“筛选”呢？ $&#40;&#34;input&#34;&#41; .filter&#40;&#34;#click_me&#34;&#41; .click&#40; // More codes here... &#41;.end&#40;&#41; .filter&#40;&#34;#click_me_not&#34;&#41; .click&#40; // More codes here... &#41;; jQuery中，每个选择都是用$(&#8220;&#8221;)声明的。在这里，我使用的是$(&#8220;input&#8221;)，其中的&#8221;input&#8221;参数经过jQuery的解析，会被理解为是一个DOM元素（input），而此时的文档DOM结构中有两个input元素，其id分别为：click_me和click_me_not。（至于input为什么会被解析为DOM元素，可以参考jQuery的js文件中的34-84行，有关jQuery.fn.init的声明。） jQuery中所有方法还有一个共同的特点是：它们都返回jQuery对象，从而我们可以“串接”起一个一个的“动作”。这个做法是非常面向对象的。因此，接着上段中的选择，我继续使用filter方法来进行过滤。这次我使用的是#click_me参数。这表示，我提供的是一个元素的id。 根据参数的不同，filter方法还可以有更多的筛选类别，例如：根据元素的id值过滤（参数形如：#id）；根据元素名（参数形如：element_name）；根据元素所属的CSS类（参数形如：.class）；或者干脆就是所有元素（参数是*）。 因此，通过.filter(&#8220;#click_me&#8221;)我就获得了本例中第一个按钮的对象，然后再通过.click()给这个对象加上click的响应函数。 然后，我通过另一个很奇妙的end函数，将当前的对象集（只有一个click_me按钮）回复到上一个“破坏性”操作之前的对象集状态。什么是（对对象集有）“破坏性”的操作？我个人的理解是，会在一个对象集中增加、减少对象的操作。在本例中，显然end()上一个有“破坏性”的操作是filter，所以end()方法将把对象集恢复到filter之前，也就是$(&#8220;input&#8221;)之后，也就是应该有两个input按钮的时候。注意：在本例中，这个方法的使用不是必要的，因为我们不会为第二个按钮设置有意义的事件响应。但是，我觉得在这里引入这个函数是很有意义的。 接下来我们看第一个按钮的click函数体： .click&#40; function&#40;event&#41; &#123; event.preventDefault&#40;&#41;; $&#40;&#34;div&#34;&#41;.filter&#40;&#34;#div01&#34;&#41;.removeClass&#40;&#34;en-us&#34;&#41; .addClass&#40;&#34;zh-cn&#34;&#41;.html&#40;&#34;本行已经被改变！&#34;&#41;; &#125; &#41; 首先，我用event.preventDefault()来阻止该元素在单击时的缺省行为（一般而言，一个按钮是用来递交或者重置一个表单的），然后用标准的选择语法找出div中id为div01的div，取消它原来的CSS类en-us（从而取消了所有关联的CSS效果），加上新的CSS类zh-cn，并同时修改它的文本为“本行已经被改变！” 看，我们第一个例子就这么简单——虽然比大部分jQuery教程中的的第一个例子已经复杂了不少。]]></description>
			<content:encoded><![CDATA[<p>示范例子见：<a href="http://www.rsywx.net/jquery/demos/test01.html">此处</a>。</p>
<p>=========================</p>
<p>经过一段时间和<a href="/xajax/demos">XAJAX</a>的较劲，我发现了它的一些限制——当然，它还是一个很好的ajax框架：</p>
<ol>
<li>在XAJAX的调用中，我不能获得Smarty模板渲染后的内容。因而，想要借助这个方法而动态增加动态内容是不可能了；</li>
<li>诸如onclick()/on????()等事件处理必须和一个HTML元素硬编码在一起，这会使得MVC结构出现了些许松散。</li>
</ol>
<p>那么，有备用方案吗？有的，我选择了<a href="http://www.jquery.com">jQuery</a>。</p>
<p><span id="more-1199"></span></p>
<p>本章中的例子是一个很简单的例子。但是它包含了可能是jQuery中最重要的一个组成部分：选择。我们不光要选择哪些（个）控件要响应我们的行为，也要选择这个行为需要对哪些（个）控件起作用。</p>
<p>首先，我要找到响应我动作的控件。我知道它应该是一个按钮。但问题是，页面中有两个按钮，我该怎么“筛选”呢？</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span>
	.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#click_me&quot;</span><span style="color: #009900;">&#41;</span>
		.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
			<span style="color: #006600; font-style: italic;">// More codes here...</span>
		<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">end</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#click_me_not&quot;</span><span style="color: #009900;">&#41;</span>
		.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
			<span style="color: #006600; font-style: italic;">// More codes here...</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>jQuery中，每个选择都是用$(&#8220;&#8221;)声明的。在这里，我使用的是$(&#8220;input&#8221;)，其中的&#8221;input&#8221;参数经过jQuery的解析，会被理解为是一个DOM元素（input），而此时的文档DOM结构中有两个input元素，其id分别为：click_me和click_me_not。（至于input为什么会被解析为DOM元素，可以参考jQuery的js文件中的34-84行，有关jQuery.fn.init的声明。）</p>
<p>jQuery中所有方法还有一个共同的特点是：它们都返回jQuery对象，从而我们可以“串接”起一个一个的“动作”。这个做法是非常面向对象的。因此，接着上段中的选择，我继续使用filter方法来进行过滤。这次我使用的是#click_me参数。这表示，我提供的是一个元素的id。</p>
<p>根据参数的不同，filter方法还可以有更多的筛选类别，例如：根据元素的id值过滤（参数形如：#id）；根据元素名（参数形如：element_name）；根据元素所属的CSS类（参数形如：.class）；或者干脆就是所有元素（参数是*）。</p>
<p>因此，通过.filter(&#8220;#click_me&#8221;)我就获得了本例中第一个按钮的对象，然后再通过.click()给这个对象加上click的响应函数。</p>
<p>然后，我通过另一个很奇妙的end函数，将当前的对象集（只有一个click_me按钮）回复到上一个“破坏性”操作之前的对象集状态。什么是（对对象集有）“破坏性”的操作？我个人的理解是，会在一个对象集中增加、减少对象的操作。在本例中，显然end()上一个有“破坏性”的操作是filter，所以end()方法将把对象集恢复到filter之前，也就是$(&#8220;input&#8221;)之后，也就是应该有两个input按钮的时候。<strong>注意：在本例中，这个方法的使用不是必要的，因为我们不会为第二个按钮设置有意义的事件响应。但是，我觉得在这里引入这个函数是很有意义的。</strong></p>
<p>接下来我们看第一个按钮的click函数体：</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		event.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#div01&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;en-us&quot;</span><span style="color: #009900;">&#41;</span>
			.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;zh-cn&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;本行已经被改变！&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>首先，我用event.preventDefault()来阻止该元素在单击时的缺省行为（一般而言，一个按钮是用来递交或者重置一个表单的），然后用标准的选择语法找出div中id为div01的div，取消它原来的CSS类en-us（从而取消了所有关联的CSS效果），加上新的CSS类zh-cn，并同时修改它的文本为“本行已经被改变！”</p>
<p>看，我们第一个例子就这么简单——虽然比大部分jQuery教程中的的第一个例子已经复杂了不少。</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://www.rsywx.net/wordpress/2008/11/29/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b1%ef%bc%9a%e5%8a%a8%e6%80%81%e6%94%b9%e5%8f%98%e6%96%87%e6%9c%ac%e6%a0%b7%e5%bc%8f%e5%92%8c%e5%86%85%e5%ae%b9/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.rsywx.net/wordpress/2008/11/29/%e3%80%90jquery%e3%80%91%e7%a4%ba%e4%be%8b1%ef%bc%9a%e5%8a%a8%e6%80%81%e6%94%b9%e5%8f%98%e6%96%87%e6%9c%ac%e6%a0%b7%e5%bc%8f%e5%92%8c%e5%86%85%e5%ae%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

