<?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.52ebuy.com/archives/category/%e5%89%8d%e7%ab%af%e8%84%9a%e6%9c%ac/feed" rel="self" type="application/rss+xml" />
	<link>http://www.52ebuy.com</link>
	<description>生活的理想，就是为了理想的生活</description>
	<lastBuildDate>Sat, 04 Sep 2010 09:42:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>超炫的button按钮样式-赶上flash喽</title>
		<link>http://www.52ebuy.com/archives/599</link>
		<comments>http://www.52ebuy.com/archives/599#comments</comments>
		<pubDate>Tue, 24 Aug 2010 01:54:25 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[页面设计]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=599</guid>
		<description><![CDATA[超炫的button按钮效果，先看看效果吧。
第一个效果是没有jquery的效果，只用了css。
第二个是用jquery让北京图片从上往下出来的效果，图片做了特殊效果，很炫吧，高尚flash效果了。
第三个是背... ]]></description>
			<content:encoded><![CDATA[<p>超炫的button按钮效果，<a href="http://www.72color.com/upload/jQuerybutton/jQuerybutton.htm" target="_blank">先看看效果吧</a>。<br />
第一个效果是没有jquery的效果，只用了<a href="http://www.72color.com/catalog.asp?tags=css" target="_blank">css</a>。<br />
第二个是用jquery让北京图片从上往下出来的效果，图片做了特殊效果，很炫吧，高尚flash效果了。<br />
第三个是背景图片左右移动的效果。<br />
第四第五个是图片上下移动渐显渐隐效果。<span id="more-599"></span></p>
<p>HTML</p>
<blockquote>
<pre>&lt;ul&gt;
   &lt;li&gt;&lt;a href="#"&gt;Home&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#"&gt;About&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#"&gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
</blockquote>
<p>CSS</p>
<blockquote><p>ul { list-style:none; margin:0; padding:0; }<br />
li { float:left; width:100px; margin:0; padding:0; text-align:center; }<br />
li a { display:block; padding:5px 10px; height:100%; color:#FFF; text-decoration:none; border-right:1px solid #FFF; }<br />
li a { background:url(bg.jpg) repeat 0 0; }<br />
li a:hover { background-position:50px 0; }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/599/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery validate自定义验证方法</title>
		<link>http://www.52ebuy.com/archives/575</link>
		<comments>http://www.52ebuy.com/archives/575#comments</comments>
		<pubDate>Wed, 21 Apr 2010 15:11:17 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[validate]]></category>
		<category><![CDATA[自定义验证]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=575</guid>
		<description><![CDATA[/* 追加自定义验证方法 */
// 身份证号码验证
jQuery.validator.addMethod(&#8220;idcardno&#8221;, function(value, element) {
return this.optional(element) &#124;&#124; isIdCardNo(value);
}, &#8221;请正确输入身份证号码&#822... ]]></description>
			<content:encoded><![CDATA[<p>/* 追加自定义验证方法 */<br />
// 身份证号码验证<br />
jQuery.validator.addMethod(&#8220;idcardno&#8221;, function(value, element) {<br />
return this.optional(element) || isIdCardNo(value);<br />
}, &#8221;请正确输入身份证号码&#8221;);</p>
<p>//字母数字<br />
jQuery.validator.addMethod(&#8220;alnum&#8221;, function(value, element) {<br />
return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);<br />
}, &#8221;只能包括英文字母和数字&#8221;);<br />
<span id="more-575"></span><br />
// 手机号码验证<br />
jQuery.validator.addMethod(&#8220;cellphone&#8221;, function(value, element) {<br />
var length = value.length;<br />
return this.optional(element) || (length == 11 &amp;&amp; /^(1\d{10})$/.test(value));<br />
}, &#8221;请正确填写手机号码&#8221;);</p>
<p>// 电话号码验证<br />
jQuery.validator.addMethod(&#8220;telephone&#8221;, function(value, element) {<br />
var tel = /^(\d{3,4}-?)?\d{7,9}$/g;<br />
return this.optional(element) || (tel.test(value));<br />
}, &#8221;请正确填写电话号码&#8221;);</p>
<p>// 邮政编码验证<br />
jQuery.validator.addMethod(&#8220;zipcode&#8221;, function(value, element) {<br />
var tel = /^[0-9]{6}$/;<br />
return this.optional(element) || (tel.test(value));<br />
}, &#8221;请正确填写邮政编码&#8221;);</p>
<p>// 汉字<br />
jQuery.validator.addMethod(&#8220;chcharacter&#8221;, function(value, element) {<br />
var tel = /^[\u4e00-\u9fa5]+$/;<br />
return this.optional(element) || (tel.test(value));<br />
}, &#8221;请输入汉字&#8221;);</p>
<p>/**<br />
* 身份证号码验证<br />
*<br />
*/<br />
function isIdCardNo(num) {</p>
<p>var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);<br />
var parityBit=new Array(&#8220;1&#8243;,&#8221;0&#8243;,&#8221;X&#8221;,&#8221;9&#8243;,&#8221;8&#8243;,&#8221;7&#8243;,&#8221;6&#8243;,&#8221;5&#8243;,&#8221;4&#8243;,&#8221;3&#8243;,&#8221;2&#8243;);<br />
var varArray = new Array();<br />
var intValue;<br />
var lngProduct = 0;<br />
var intCheckDigit;<br />
var intStrLen = num.length;<br />
var idNumber = num;<br />
// initialize<br />
if ((intStrLen != 15) &amp;&amp; (intStrLen != 18)) {<br />
return false;<br />
}<br />
// check and set value<br />
for(i=0;i&lt;intStrLen;i++) {<br />
varArray[i] = idNumber.charAt(i);<br />
if ((varArray[i] &lt; &#8217;0&#8242; || varArray[i] &gt; &#8217;9&#8242;) &amp;&amp; (i != 17)) {<br />
return false;<br />
} else if (i &lt; 17) {<br />
varArray[i] = varArray[i] * factorArr[i];<br />
}<br />
}</p>
<p>if (intStrLen == 18) {<br />
//check date<br />
var date8 = idNumber.substring(6,14);<br />
if (isDate8(date8) == false) {<br />
return false;<br />
}<br />
// calculate the sum of the products<br />
for(i=0;i&lt;17;i++) {<br />
lngProduct = lngProduct + varArray[i];<br />
}<br />
// calculate the check digit<br />
intCheckDigit = parityBit[lngProduct % 11];<br />
// check last digit<br />
if (varArray[17] != intCheckDigit) {<br />
return false;<br />
}<br />
}<br />
else{        //length is 15<br />
//check date<br />
var date6 = idNumber.substring(6,12);<br />
if (isDate6(date6) == false) {</p>
<p>return false;<br />
}<br />
}<br />
return true;</p>
<p>}<br />
/**<br />
* 判断是否为“YYYYMM”式的时期<br />
*<br />
*/<br />
function isDate6(sDate) {<br />
if(!/^[0-9]{6}$/.test(sDate)) {<br />
return false;<br />
}<br />
var year, month, day;<br />
year = sDate.substring(0, 4);<br />
month = sDate.substring(4, 6);<br />
if (year &lt; 1700 || year &gt; 2500) return false<br />
if (month &lt; 1 || month &gt; 12) return false<br />
return true<br />
}<br />
/**<br />
* 判断是否为“YYYYMMDD”式的时期<br />
*<br />
*/<br />
function isDate8(sDate) {<br />
if(!/^[0-9]{8}$/.test(sDate)) {<br />
return false;<br />
}<br />
var year, month, day;<br />
year = sDate.substring(0, 4);<br />
month = sDate.substring(4, 6);<br />
day = sDate.substring(6, 8);<br />
var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]<br />
if (year &lt; 1700 || year &gt; 2500) return false<br />
if (((year % 4 == 0) &amp;&amp; (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;<br />
if (month &lt; 1 || month &gt; 12) return false<br />
if (day &lt; 1 || day &gt; iaMonthDays[month - 1]) return false<br />
return true<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/575/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jquery.validate的使用方法详解</title>
		<link>http://www.52ebuy.com/archives/544</link>
		<comments>http://www.52ebuy.com/archives/544#comments</comments>
		<pubDate>Sat, 10 Apr 2010 01:53:18 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[validate]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=544</guid>
		<description><![CDATA[一、必须引用：
&#60;script src=&#8221;http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js&#8221; type=&#8221;text/javascript&#8221;&#62;&#60;/script&#62;
&#60;script src=&#8221;http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Valida... ]]></description>
			<content:encoded><![CDATA[<p>一、必须引用：</p>
<blockquote><p>&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Validate.min.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/localization/messages_cn.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</p></blockquote>
<p>二、默认校验规则</p>
<div>(1)required:true               必输字段<br />
(2)remote:&#8221;check.php&#8221;          使用ajax方法调用check.php验证输入值<br />
(3)email:true                  必须输入正确格式的电子邮件<br />
(4)url:true                    必须输入正确格式的网址<br />
(5)date:true                   必须输入正确格式的日期<br />
(6)dateISO:true                必须输入正确格式的日期(ISO)，例如：2009-06-23，1998/01/22 只验证格式，不验证有效性<br />
<span id="more-544"></span>(7)number:true                 必须输入合法的数字(负数，小数)<br />
(8)digits:true                 必须输入整数<br />
(9)creditcard:                 必须输入合法的信用卡号<br />
(10)equalTo:&#8221;#field&#8221;           输入值必须和#field相同<br />
(11)accept:                    输入拥有合法后缀名的字符串（上传文件的后缀）<br />
(12)maxlength:5                输入长度最多是5的字符串(汉字算一个字符)<br />
(13)minlength:10               输入长度最小是10的字符串(汉字算一个字符)<br />
(14)rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串&#8221;)(汉字算一个字符)<br />
(15)range:[5,10]               输入值必须介于 5 和 10 之间<br />
(16)max:5                      输入值不能大于5<br />
(17)min:10                     输入值不能小于10</div>
<div>三、默认的提示</div>
<blockquote>
<div>messages: {<br />
required: &#8220;This field is required.&#8221;,<br />
remote: &#8220;Please fix this field.&#8221;,<br />
email: &#8220;Please enter a valid email address.&#8221;,<br />
url: &#8220;Please enter a valid URL.&#8221;,<br />
date: &#8220;Please enter a valid date.&#8221;,<br />
dateISO: &#8220;Please enter a valid date (ISO).&#8221;,<br />
dateDE: &#8220;Bitte geben Sie ein g眉ltiges Datum ein.&#8221;,<br />
number: &#8220;Please enter a valid number.&#8221;,<br />
numberDE: &#8220;Bitte geben Sie eine Nummer ein.&#8221;,<br />
digits: &#8220;Please enter only digits&#8221;,<br />
creditcard: &#8220;Please enter a valid credit card number.&#8221;,<br />
equalTo: &#8220;Please enter the same value again.&#8221;,<br />
accept: &#8220;Please enter a value with a valid extension.&#8221;,<br />
maxlength: $.validator.format(&#8220;Please enter no more than {0} characters.&#8221;),<br />
minlength: $.validator.format(&#8220;Please enter at least {0} characters.&#8221;),<br />
rangelength: $.validator.format(&#8220;Please enter a value between {0} and {1} characters long.&#8221;),<br />
range: $.validator.format(&#8220;Please enter a value between {0} and {1}.&#8221;),<br />
max: $.validator.format(&#8220;Please enter a value less than or equal to {0}.&#8221;),<br />
min: $.validator.format(&#8220;Please enter a value greater than or equal to {0}.&#8221;)<br />
},</div>
</blockquote>
<div>
<div>如需要修改，可在js代码中加入：</div>
<div>jQuery.extend(jQuery.validator.messages, {<br />
required: &#8220;必选字段&#8221;,<br />
remote: &#8220;请修正该字段&#8221;,<br />
email: &#8220;请输入正确格式的电子邮件&#8221;,<br />
url: &#8220;请输入合法的网址&#8221;,<br />
date: &#8220;请输入合法的日期&#8221;,<br />
dateISO: &#8220;请输入合法的日期 (ISO).&#8221;,<br />
number: &#8220;请输入合法的数字&#8221;,<br />
digits: &#8220;只能输入整数&#8221;,<br />
creditcard: &#8220;请输入合法的信用卡号&#8221;,<br />
equalTo: &#8220;请再次输入相同的值&#8221;,<br />
accept: &#8220;请输入拥有合法后缀名的字符串&#8221;,<br />
maxlength: jQuery.validator.format(&#8220;请输入一个长度最多是 {0} 的字符串&#8221;),<br />
minlength: jQuery.validator.format(&#8220;请输入一个长度最少是 {0} 的字符串&#8221;),<br />
rangelength: jQuery.validator.format(&#8220;请输入一个长度介于 {0} 和 {1} 之间的字符串&#8221;),<br />
range: jQuery.validator.format(&#8220;请输入一个介于 {0} 和 {1} 之间的值&#8221;),<br />
max: jQuery.validator.format(&#8220;请输入一个最大为 {0} 的值&#8221;),<br />
min: jQuery.validator.format(&#8220;请输入一个最小为 {0} 的值&#8221;)<br />
});</div>
<div>推荐做法，将此文件放入messages_cn.js中，在页面中引入<br />
&lt;script src=&#8221;../js/messages_cn.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</div>
<div>四、使用方式</div>
<div>1.将校验规则写到控件中</div>
</div>
<blockquote>
<div>&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Validate.min.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/localization/messages_cn.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
$().ready(function() {<br />
$(&#8220;#signupForm&#8221;).validate();<br />
});</p>
<p>&lt;form id=&#8221;signupForm&#8221; method=&#8221;get&#8221; action=&#8221;"&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;firstname&#8221;&gt;Firstname&lt;/label&gt;<br />
&lt;input id=&#8221;firstname&#8221; name=&#8221;firstname&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;email&#8221;&gt;E-Mail&lt;/label&gt;<br />
&lt;input id=&#8221;email&#8221; name=&#8221;email&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;password&#8221;&gt;Password&lt;/label&gt;<br />
&lt;input id=&#8221;password&#8221; name=&#8221;password&#8221; type=&#8221;password&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;confirm_password&#8221;&gt;确认密码&lt;/label&gt;<br />
&lt;input id=&#8221;confirm_password&#8221; name=&#8221;confirm_password&#8221; type=&#8221;password&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;Submit&#8221;/&gt;<br />
&lt;/p&gt;<br />
&lt;/form&gt;</p>
</div>
</blockquote>
<div>
<div>使用class=&#8221;{}&#8221;的方式，必须引入包：jquery.metadata.js</div>
<div>可以使用如下的方法，修改提示内容：<br />
class=&#8221;{required:true,minlength:5,messages:{required:&#8217;请输入内容&#8217;}}&#8221;</div>
<div>在使用equalTo关键字时，后面的内容必须加上引号，如下代码：<br />
class=&#8221;{required:true,minlength:5,equalTo:&#8217;#password&#8217;}&#8221;</div>
<p>另外一个方式，使用关键字：meta（为了元数据使用其他插件你要包装 你的验证规则 在他们自己的项目中可以用这个特殊的选项）<br />
Tell the validation plugin to look inside a validate-property in metadata for validation rules.<br />
例如：<br />
meta: &#8220;validate&#8221;<br />
&lt;input id=&#8221;password&#8221; name=&#8221;password&#8221; type=&#8221;password&#8221;attr&#8221;, &#8220;validate&#8221;);</p>
<div>这样可以使用validate=&#8221;{required:true}&#8221;的方式，或者class=&#8221;required&#8221;，但class=&#8221;{required:true,minlength:5}&#8221;将不起作用</div>
<div>2.将校验规则写到代码中</div>
</div>
<blockquote>
<div>$().ready(function() {<br />
$(&#8220;#signupForm&#8221;).validate({<br />
rules: {<br />
firstname: &#8220;required&#8221;,<br />
email: {<br />
required: true,<br />
email: true<br />
},<br />
password: {<br />
required: true,<br />
minlength: 5<br />
},<br />
confirm_password: {<br />
required: true,<br />
minlength: 5,<br />
equalTo: &#8220;#password&#8221;<br />
}<br />
},<br />
messages: {<br />
firstname: &#8220;请输入姓名&#8221;,<br />
email: {<br />
required: &#8220;请输入Email地址&#8221;,<br />
email: &#8220;请输入正确的email地址&#8221;<br />
},<br />
password: {<br />
required: &#8220;请输入密码&#8221;,<br />
minlength: jQuery.format(&#8220;密码不能小于{0}个字符&#8221;)<br />
},<br />
confirm_password: {<br />
required: &#8220;请输入确认密码&#8221;,<br />
minlength: &#8220;确认密码不能小于5个字符&#8221;,<br />
equalTo: &#8220;两次输入密码不一致不一致&#8221;<br />
}<br />
}<br />
});<br />
});<br />
//messages处，如果某个控件没有message，将调用默认的信息</p>
<p>&lt;form id=&#8221;signupForm&#8221; method=&#8221;get&#8221; action=&#8221;"&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;firstname&#8221;&gt;Firstname&lt;/label&gt;<br />
&lt;input id=&#8221;firstname&#8221; name=&#8221;firstname&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;email&#8221;&gt;E-Mail&lt;/label&gt;<br />
&lt;input id=&#8221;email&#8221; name=&#8221;email&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;password&#8221;&gt;Password&lt;/label&gt;<br />
&lt;input id=&#8221;password&#8221; name=&#8221;password&#8221; type=&#8221;password&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;label for=&#8221;confirm_password&#8221;&gt;确认密码&lt;/label&gt;<br />
&lt;input id=&#8221;confirm_password&#8221; name=&#8221;confirm_password&#8221; type=&#8221;password&#8221; /&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
&lt;input type=&#8221;submit&#8221; value=&#8221;Submit&#8221;/&gt;<br />
&lt;/p&gt;<br />
&lt;/form&gt;</p>
</div>
</blockquote>
<div>
<div>required:true 必须有值<br />
required:&#8221;#aa:checked&#8221;表达式的值为真，则需要验证<br />
required:function(){}返回为真，表时需要验证<br />
后边两种常用于，表单中需要同时填或不填的元素</div>
<div>五、常用方法及注意问题</div>
<div>1.用其他方式替代默认的SUBMIT</div>
</div>
<blockquote>
<div>$().ready(function() {<br />
$(&#8220;#signupForm&#8221;).validate({<br />
submitHandler:function(form){<br />
alert(&#8220;submitted&#8221;);<br />
form.submit();<br />
}<br />
});<br />
});</div>
</blockquote>
<div>可以设置validate的默认值，写法如下：</div>
<blockquote>
<div>$.validator.setDefaults({<br />
submitHandler: function(form) { alert(&#8220;submitted!&#8221;);form.submit(); }<br />
});</div>
</blockquote>
<div>
<div>如果想提交表单, 需要使用form.submit()而不要使用$(form).submit()</div>
<div>2.debug，如果这个参数为true，那么表单不会提交，只进行检查，调试时十分方便</div>
</div>
<blockquote>
<div>$().ready(function() {<br />
$(&#8220;#signupForm&#8221;).validate({<br />
debug:true<br />
});<br />
});</div>
</blockquote>
<div>如果一个页面中有多个表单都想设置成为debug，用<br />
$.validator.setDefaults({<br />
debug: true<br />
})</p>
<div>3.ignore：忽略某些元素不验证<br />
ignore: &#8220;.ignore&#8221;</div>
<div>4.errorPlacement：Callback  Default: 把错误信息放在验证的元素后面<br />
指明错误放置的位置，默认情况是：error.appendTo(element.parent());即把错误信息放在验证的元素后面<br />
errorPlacement: function(error, element) {<br />
error.appendTo(element.parent());<br />
}</div>
<div>//示例：</div>
</div>
<blockquote>
<div>&lt;tr&gt;<br />
&lt;td&gt;&lt;label id=&#8221;lfirstname&#8221; for=&#8221;firstname&#8221;&gt;First Name&lt;/label&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;input id=&#8221;firstname&#8221; name=&#8221;firstname&#8221; type=&#8221;text&#8221; value=&#8221;" maxlength=&#8221;100&#8243; /&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td style=&#8221;padding-right: 5px;&#8221;&gt;<br />
&lt;input id=&#8221;dateformat_eu&#8221; name=&#8221;dateformat&#8221; type=&#8221;radio&#8221; value=&#8221;0&#8243; /&gt;<br />
&lt;label id=&#8221;ldateformat_eu&#8221; for=&#8221;dateformat_eu&#8221;&gt;14/02/07&lt;/label&gt;<br />
&lt;/td&gt;<br />
&lt;td style=&#8221;padding-left: 5px;&#8221;&gt;<br />
&lt;input id=&#8221;dateformat_am&#8221; name=&#8221;dateformat&#8221; type=&#8221;radio&#8221; value=&#8221;1&#8243;  /&gt;<br />
&lt;label id=&#8221;ldateformat_am&#8221; for=&#8221;dateformat_am&#8221;&gt;02/14/07&lt;/label&gt;<br />
&lt;/td&gt;<br />
&lt;td&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt; &lt;/td&gt;<br />
&lt;td colspan=&#8221;2&#8243;&gt;<br />
&lt;div id=&#8221;termswrap&#8221;&gt;<br />
&lt;input id=&#8221;terms&#8221; type=&#8221;checkbox&#8221; name=&#8221;terms&#8221; /&gt;<br />
&lt;label id=&#8221;lterms&#8221; for=&#8221;terms&#8221;&gt;I have read and accept the Terms of Use.&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
errorPlacement: function(error, element) {<br />
if ( element.is(&#8220;:radio&#8221;) )<br />
error.appendTo( element.parent().next().next() );<br />
else if ( element.is(&#8220;:checkbox&#8221;) )<br />
error.appendTo ( element.next() );<br />
else<br />
error.appendTo( element.parent().next() );<br />
}</div>
</blockquote>
<div>
<div>代码的作用是：一般情况下把错误信息显示在&lt;td&gt;&lt;/td&gt;中，如果是radio显示在&lt;td&gt;&lt;/td&gt;中，如果是checkbox显示在内容的后面</div>
<div>errorClass：String  Default: &#8220;error&#8221;<br />
指定错误提示的css类名，可以自定义错误提示的样式</div>
<div>errorElement：String  Default: &#8220;label&#8221;<br />
用什么标签标记错误，默认的是label你可以改成em</div>
<div>errorContainer：Selector<br />
显示或者隐藏验证信息，可以自动实现有错误信息出现时把容器属性变为显示，无错误时隐藏，用处不大<br />
errorContainer: &#8220;#messageBox1, #messageBox2&#8243;</div>
<div>errorLabelContainer：Selector<br />
把错误信息统一放在一个容器里面。</div>
<div>wrapper：String<br />
用什么标签再把上边的errorELement包起来</div>
<div>一般这三个属性同时使用，实现在一个容器内显示所有错误提示的功能，并且没有信息时自动隐藏</div>
<div>errorContainer: &#8220;div.error&#8221;,<br />
errorLabelContainer: $(&#8220;#signupForm div.error&#8221;),<br />
wrapper: &#8220;li&#8221;</div>
<div>设置错误提示的样式，可以增加图标显示</div>
<div>input.error { border: 1px solid red; }<br />
label.error {<br />
background:url(&#8220;./demo/images/unchecked.gif&#8221;) no-repeat 0px 0px;</div>
<div>padding-left: 16px;</div>
<div>padding-bottom: 2px;</div>
<div>font-weight: bold;</div>
<div>color: #EA5200;<br />
}<br />
label.checked {<br />
background:url(&#8220;./demo/images/checked.gif&#8221;) no-repeat 0px 0px;<br />
}</div>
<div>success：String,Callback<br />
要验证的元素通过验证后的动作，如果跟一个字符串，会当做一个css类，也可跟一个函数<br />
success: function(label) {<br />
// set &amp;nbsp; as text for IE<br />
label.html(&#8220;&amp;nbsp;&#8221;).addClass(&#8220;checked&#8221;);<br />
//label.addClass(&#8220;valid&#8221;).text(&#8220;Ok!&#8221;)<br />
}<br />
添加&#8221;valid&#8221; 到验证元素, 在CSS中定义的样式&lt;style&gt;label.valid {}&lt;/style&gt;<br />
success: &#8220;valid&#8221;</div>
<div>nsubmit： Boolean  Default: true<br />
提交时验证. 设置唯false就用其他方法去验证<br />
onfocusout：Boolean  Default: true<br />
失去焦点是验证(不包括checkboxes/radio buttons)<br />
onkeyup：Boolean  Default: true<br />
在keyup时验证.<br />
onclick：Boolean  Default: true<br />
在checkboxes 和 radio 点击时验证<br />
focusInvalid：Boolean  Default: true<br />
提交表单后，未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点<br />
focusCleanup：Boolean  Default: false<br />
如果是true那么当未通过验证的元素获得焦点时，移除错误提示。避免和 focusInvalid 一起用</div>
<div>// 重置表单</div>
</div>
<blockquote>
<div>$().ready(function() {<br />
var validator = $(&#8220;#signupForm&#8221;).validate({<br />
submitHandler:function(form){<br />
alert(&#8220;submitted&#8221;);<br />
form.submit();<br />
}<br />
});<br />
$(&#8220;#reset&#8221;).click(function() {<br />
validator.resetForm();<br />
});<br />
});</div>
</blockquote>
<div>
<div>remote：URL<br />
使用ajax方式进行验证，默认会提交当前验证的值到远程地址，如果需要提交其他的值，可以使用data选项</div>
<div>remote: &#8220;check-email.php&#8221;</div>
<div>remote: {<br />
url: &#8220;check-email.php&#8221;,     //后台处理程序<br />
type: &#8220;post&#8221;,               //数据发送方式<br />
dataType: &#8220;json&#8221;,           //接受数据格式<br />
data: {                     //要传递的数据<br />
username: function() {<br />
return $(&#8220;#username&#8221;).val();<br />
}<br />
}<br />
}</div>
<div>远程地址只能输出 &#8220;true&#8221; 或 &#8220;false&#8221;，不能有其它输出</div>
<div>addMethod：name, method, message<br />
自定义验证方法</div>
<div>// 中文字两个字节<br />
jQuery.validator.addMethod(&#8220;byteRangeLength&#8221;, function(value, element, param) {<br />
var length = value.length;<br />
for(var i = 0; i &lt; value.length; i++){<br />
if(value.charCodeAt(i) &gt; 127){<br />
length++;<br />
}<br />
}<br />
return this.optional(element) || ( length &gt;= param[0] &amp;&amp; length &lt;= param[1] );<br />
}, $.validator.format(&#8220;请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)&#8221;));</div>
<div>// 邮政编码验证<br />
jQuery.validator.addMethod(&#8220;isZipCode&#8221;, function(value, element) {<br />
var tel = /^[0-9]{6}$/;<br />
return this.optional(element) || (tel.test(value));<br />
}, &#8220;请正确填写您的邮政编码&#8221;);</div>
<div>radio和checkbox、select的验证</div>
<div>radio的required表示必须选中一个<br />
&lt;input  type=&#8221;radio&#8221; id=&#8221;gender_male&#8221; value=&#8221;m&#8221; name=&#8221;gender&#8221; /&gt;<br />
&lt;input  type=&#8221;radio&#8221; id=&#8221;gender_female&#8221; value=&#8221;f&#8221; name=&#8221;gender&#8221;/&gt;</div>
<div>checkbox的required表示必须选中<br />
&lt;input type=&#8221;checkbox&#8221; id=&#8221;agree&#8221; name=&#8221;agree&#8221; /&gt;</div>
<div>checkbox的minlength表示必须选中的最小个数,maxlength表示最大的选中个数,rangelength:[2,3]表示选中个数区间<br />
&lt;input type=&#8221;checkbox&#8221; id=&#8221;spam_email&#8221; value=&#8221;email&#8221; name=&#8221;spam[]&#8221; /&gt;<br />
&lt;input type=&#8221;checkbox&#8221; id=&#8221;spam_phone&#8221; value=&#8221;phone&#8221; name=&#8221;spam[]&#8221; /&gt;<br />
&lt;input type=&#8221;checkbox&#8221; id=&#8221;spam_mail&#8221; value=&#8221;mail&#8221; name=&#8221;spam[]&#8221; /&gt;</div>
<div>select的required表示选中的value不能为空<br />
&lt;select id=&#8221;jungle&#8221; name=&#8221;jungle&#8221; title=&#8221;Please select something!&#8221;&gt;<br />
&lt;option value=&#8221;"&gt;&lt;/option&gt;<br />
&lt;option value=&#8221;1&#8243;&gt;Buga&lt;/option&gt;<br />
&lt;option value=&#8221;2&#8243;&gt;Baga&lt;/option&gt;<br />
&lt;option value=&#8221;3&#8243;&gt;Oi&lt;/option&gt;<br />
&lt;/select&gt;</div>
<div>select的minlength表示选中的最小个数（可多选的select）,maxlength表示最大的选中个数,rangelength:[2,3]表示选中个数区间<br />
&lt;select id=&#8221;fruit&#8221; name=&#8221;fruit&#8221; title=&#8221;Please select at least two fruits&#8221; class=&#8221;minlength:2} {required:true,&#8221; multiple=&#8221;multiple&#8221;&gt;<br />
&lt;option value=&#8221;b&#8221;&gt;Banana&lt;/option&gt;<br />
&lt;option value=&#8221;a&#8221;&gt;Apple&lt;/option&gt;<br />
&lt;option value=&#8221;p&#8221;&gt;Peach&lt;/option&gt;<br />
&lt;option value=&#8221;t&#8221;&gt;Turtle&lt;/option&gt;<br />
&lt;/select&gt;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/544/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6个基于JQuery的Tab选项卡实例</title>
		<link>http://www.52ebuy.com/archives/542</link>
		<comments>http://www.52ebuy.com/archives/542#comments</comments>
		<pubDate>Sat, 20 Mar 2010 14:47:45 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[TAB]]></category>
		<category><![CDATA[实例]]></category>
		<category><![CDATA[选项卡]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=542</guid>
		<description><![CDATA[今天在修整博客侧栏信息时，利用到了Tab选项卡方式，因为ZBlog封装的是JQuery库，所以很自然地就想到了IdTabs。顺便也找 来了不少优秀的Tab选项卡实例，在这里与大家分享一下。当然，最终我... ]]></description>
			<content:encoded><![CDATA[<div>今天在修整博客侧栏信息时，利用到了Tab选项卡方式，因为ZBlog封装的是JQuery库，所以很自然地就想到了IdTabs。顺便也找 来了不少优秀的Tab选项卡实例，在这里与大家分享一下。当然，最终我没有用到IdTabs以及如下任何一个实例，我只是很不服气的自己写了个小插件，尚 不完善，就不于此共享了。先来看看老外们出色的基于JQuery的各式Tab选项卡吧：</div>
<p><strong>1. jQuery 选项卡界面 / 选项卡结构菜单教程</strong><br />
这种 类型的菜单在网页设计与开发中非常著名的。此片教程是向大家展示如何使用jQuery的向下滑动/向上滑动效果创建属于你自己的选项卡菜单。要非常留心此 演示哟，你一定会喜欢上它的。<br />
<a href="http://www.queness.com/resources/html/tabmenu/jquery-tabbed-menu-queness.html" target="_blank">演示</a> | <a href="http://www.queness.com/resources/archives/jquery-tab-menu.zip" target="_blank">下载</a> | <a href="http://www.queness.com/post/106/jquery-tabbed-interfacetabbed-structure-menu-tutorial" target="_blank">介绍</a></p>
<p><strong><span id="more-542"></span>2.  jQuery目录导航插件</strong><br />
这个jQuery插件为我们提供了添加基于字母顺序的导航小部件到有序和无序列表的方法。一个在 列表之上的简易的(via  CSS)导航条，向用户展示从A到Z的检索。通过从列表中选择一个字母来显示以此字母开头的所有元素。在可选字母上面显示的计数，是表明当你点击此字母的 时候会有多少项目被现实。除此之外还有其他的基本功能可供选择。<br />
<a href="http://www.ihwy.com/Labs/Demos/Current/jquery-listnav-plugin.aspx" target="_blank">演示</a> | <a href="http://www.ihwy.com/Labs/downloads/jquery-listnav/2.0/jquery.listnav-2.0.js" target="_blank">下载</a> | <a href="http://www.ihwy.com/Labs/jquery-listnav-plugin.aspx" target="_blank">介绍</a></p>
<p><strong>3.  jQuery的Kwicks菜单</strong><br />
Kwicks起源于Mootools中的一个效果(相同名字),逐渐演变成一个高度可定制 的通用部件.<br />
<a href="http://www.jeremymartin.name/examples/kwicks.php?example=1" target="_blank">演示</a> | <a href="http://kwicks.googlecode.com/svn/branches/v1.5.1/Kwicks/Kwicks-1.5.1.zip" target="_blank">下载</a> | <a href="http://www.jeremymartin.name/projects.php?project=kwicks" target="_blank">介绍</a></p>
<p><strong>4.  jQuery褪色菜单 -更换内容</strong><br />
CSS-tricks上很好的教程，讲解如何使用css和jQuery,  这次是他们教导如何使用 jquery使得菜单选项褪色。<br />
<a href="http://css-tricks.com/examples/MenuFader/" target="_blank">演示</a> |  <a href="http://css-tricks.com/examples/MenuFader.zip" target="_blank">下 载</a> | <a href="http://css-tricks.com/learning-jquery-fading-menu-replacing-content/" target="_blank">介绍</a></p>
<p><strong>5.  jQuery idTabs</strong><br />
idTabs是jQuery的插件。他能非常容易的为网站添加选项卡.  但是他也为无穷的可能性敞开大门。<br />
<a href="http://www.sunsean.com/idTabs/#t1" target="_blank">演示</a> | <a href="http://www.sunsean.com/idTabs/jquery.idTabs.min.js" target="_blank">下载</a> | <a href="http://www.sunsean.com/idTabs/#t2" target="_blank">介绍</a></p>
<p><strong>6.  jQuery + CSS创建顺畅的选显卡内容区</strong><br />
网页设计师设法把大量的信息浓缩在一个网页上而不失可用性是最大的挑战之 一。内容选项卡化是处理此类问题非常棒的方法，最近广泛被应用于博客。这是一篇非常棒的教程讲解，使用HTML建立一个小的选项卡信息盒，最后使用一些简 单js功能与jQuery库实现。<br />
<a href="http://nettuts.s3.amazonaws.com/001_Tabbed/site/jQuery.html" target="_blank">演示</a> | <a href="http://www.sunsean.com/idTabs/jquery.idTabs.min.js" target="_blank">下载</a> | <a href="http://www.sunsean.com/idTabs/#t2" target="_blank">介绍</a></p>
<p><span style="color: #000099;"><strong>原文地址</strong></span> <a href="http://www.jgpy.cn/blog/front-end/6_cool_tabs_nav_on_jQuery.htm" target="_blank">http://www.jgpy.cn/blog/front-end/6_cool_tabs_nav_on_jQuery.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/542/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery、Ajax、PHP、Json的一个综合例子</title>
		<link>http://www.52ebuy.com/archives/534</link>
		<comments>http://www.52ebuy.com/archives/534#comments</comments>
		<pubDate>Mon, 15 Mar 2010 06:30:21 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[PHP编程]]></category>
		<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Json]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[例子]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=534</guid>
		<description><![CDATA[jQuery 是一个优秀的 Javascript 框架，对 js 进行了优秀的包装，提供了许多方便的功能。jQuery 对 ajax 的包装也堪称优秀。
jQuery 可以以 json 文件传输协议来传输数据(类似 xml，而且大有取代 xml 的... ]]></description>
			<content:encoded><![CDATA[<p>jQuery 是一个优秀的 Javascript 框架，对 js 进行了优秀的包装，提供了许多方便的功能。jQuery 对 ajax 的包装也堪称优秀。</p>
<p>jQuery 可以以 json 文件传输协议来传输数据(类似 xml，而且大有取代 xml 的趋势)，而网站后台代码必须与之配合使用。PHP 是用 json_encode 函数来对返回的数组数据进行编码的，但这个函数只有 PHP5.2版本以上才支持。</p>
<p>从网上找到一个 json 的操作类，本人在 PHP4.4.7 版本下测试通过。本人还建了个函数 function my_json_encode($phparr)，使代码兼容 PHP5.2 以上版本。</p>
<p>示例代码(包括 json 的类包软件)可以在以下网址下载：<a href="http://download.csdn.net/source/810895">http://download.csdn.net/source/810895</a></p>
<p><span id="more-534"></span>以下是全部代码：</p>
<blockquote><p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;jQuery Ajax 实例演示&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;script language=&#8221;javascript&#8221; src=&#8221;../lib/jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script language=&#8221;javascript&#8221;&gt;</p>
<p>$(document).ready(function ()<br />
{<br />
$(&#8216;#send_ajax&#8217;).click(function (){<br />
var params=$(&#8216;input&#8217;).serialize(); //序列化表单的值<br />
$.ajax({<br />
<a href="http://blog.csdn.net/zhangking/archive/2008/11/27/%27ajax_json.php%27">url:&#8217;ajax_json.php&#8217;</a>, //后台处理程序<br />
type:&#8217;post&#8217;,         //数据发送方式<br />
dataType:&#8217;json&#8217;,     //接受数据格式<br />
data:params,         //要传递的数据<br />
success:update_page  //回传函数(这里是函数名)<br />
});<br />
});</p>
<p>//$.post()方式：<br />
$(&#8216;#test_post&#8217;).click(function (){<br />
$.post(<br />
&#8216;ajax_json.php&#8217;,<br />
{<br />
username:$(&#8216;#input1&#8242;).val(),<br />
age:$(&#8216;#input2&#8242;).val(),<br />
sex:$(&#8216;#input3&#8242;).val(),<br />
job:$(&#8216;#input4&#8242;).val()<br />
},<br />
function (data) //回传函数<br />
{<br />
var myjson=&#8221;;<br />
eval(&#8216;myjson=&#8217; + data + &#8216;;&#8217;);<br />
$(&#8216;#result&#8217;).html(&#8220;姓名:&#8221; + myjson.username + &#8220;&lt;br/&gt;工作:&#8221; + myjson['job']);<br />
}<br />
);<br />
});</p>
<p>//$.get()方式：<br />
$(&#8216;#test_get&#8217;).click(function ()<br />
{<br />
$.get(<br />
&#8216;ajax_json.php&#8217;,<br />
{<br />
username:$(&#8220;#input1&#8243;).val(),<br />
age:$(&#8220;#input2&#8243;).val(),<br />
sex:$(&#8220;#input3&#8243;).val(),<br />
job:$(&#8220;#input4&#8243;).val()<br />
},<br />
function(data) //回传函数<br />
{<br />
var myjson=&#8221;;<br />
eval(&#8220;myjson=&#8221; + data + &#8220;;&#8221;);<br />
$(&#8220;#result&#8221;).html(myjson.job);<br />
}<br />
);<br />
});<br />
});</p>
<p>function update_page (json)  //回传函数实体，参数为XMLhttpRequest.responseText<br />
{<br />
var str=&#8221;姓名:&#8221;+json.username+&#8221;&lt;br /&gt;&#8221;;<br />
str+=&#8221;年龄:&#8221;+json.age+&#8221;&lt;br /&gt;&#8221;;<br />
str+=&#8221;性别:&#8221;+json.sex+&#8221;&lt;br /&gt;&#8221;;<br />
str+=&#8221;工作:&#8221;+json.job+&#8221;&lt;br /&gt;&#8221;;<br />
str+=&#8221;追加测试:&#8221;+json.append;<br />
$(&#8220;#result&#8221;).html(str);<br />
}<br />
&lt;/script&gt;<br />
&lt;body&gt;</p>
<p>&lt;div id=&#8221;result&#8221; style=&#8221;background:orange;border:1px solid red;width:300px;height:200px;&#8221;&gt;&lt;/div&gt;<br />
&lt;form id=&#8221;formtest&#8221; action=&#8221;" method=&#8221;post&#8221;&gt;<br />
&lt;p&gt;&lt;span&gt;输入姓名:&lt;/span&gt;&lt;input type=&#8221;text&#8221; name=&#8221;username&#8221; id=&#8221;input1&#8243; /&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;span&gt;输入年龄:&lt;/span&gt;&lt;input type=&#8221;text&#8221; name=&#8221;age&#8221; id=&#8221;input2&#8243; /&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;span&gt;输入性别:&lt;/span&gt;&lt;input type=&#8221;text&#8221; name=&#8221;sex&#8221; id=&#8221;input3&#8243; /&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;span&gt;输入工作:&lt;/span&gt;&lt;input type=&#8221;text&#8221; name=&#8221;job&#8221; id=&#8221;input4&#8243; /&gt;&lt;/p&gt;<br />
&lt;/form&gt;<br />
&lt;button id=&#8221;send_ajax&#8221;&gt;提交&lt;/button&gt;<br />
&lt;button id=&#8221;test_post&#8221;&gt;POST提交&lt;/button&gt;<br />
&lt;button id=&#8221;test_get&#8221;&gt;GET提交&lt;/button&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p>PHP 文件 ajax_json.php：</p>
<blockquote><p>&lt;?php<br />
//$arr = $_POST; //若以$.get()方式发送数据，则要改成$_GET.或者干脆:$_REQUEST<br />
$arr = $_REQUEST;<br />
$arr['append'] = &#8216;测试字符串&#8217;;<br />
//print_r($arr);<br />
$myjson = my_json_encode($arr);<br />
echo $myjson;</p>
<p>function my_json_encode($phparr)<br />
{<br />
if(function_exists(&#8220;json_encode&#8221;))<br />
{<br />
return json_encode($phparr);<br />
}<br />
else<br />
{<br />
require_once &#8216;json/json.class.php&#8217;;<br />
$json = new Services_JSON;<br />
return $json-&gt;encode($phparr);<br />
}<br />
}<br />
?&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/534/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10个超级jQuery教程</title>
		<link>http://www.52ebuy.com/archives/515</link>
		<comments>http://www.52ebuy.com/archives/515#comments</comments>
		<pubDate>Mon, 22 Feb 2010 05:08:36 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=515</guid>
		<description><![CDATA[jQuery是一个简洁快速的JavaScript库，它能让你在你的网页上简单的操作文档、处理事件、运行动画效果或者添加Ajax交互。jQuery的设计会改变你写JavaScript代码的方式。
jQuery适合于设计师、开发者... ]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" href="http://zmingcx.com/category/webdesign" target="_blank">jQuery</a>是一个简洁快速的JavaScript库，它能让你在你的网页上简单的操作文档、处理事件、运行动画效果或者添加Ajax交互。jQuery的设计会改变你写JavaScript代码的方式。<br />
jQuery适合于设计师、开发者以及那些还好者，同样适合用于商业开发，可以说jQuery适合任何JavaScript应用的地方，可用于不用的应用程序。</p>
<h3>1. <a title="10 Super jQuery Tutorials" href="http://9lessons.blogspot.com/2009/06/autosuggestion-with-jquery-ajax-and-php.html" target="_blank">Facebook like Autosuggestion</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://9lessons.blogspot.com/2009/06/autosuggestion-with-jquery-ajax-and-php.html" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/1.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://9lessons.net63.net/auto.htm" target="_blank">查看演示 </a></p>
<h3><span id="more-515"></span>2. <a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/coda-popup-bubbles/" target="_blank">Coda Popup Bubbles</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/coda-popup-bubbles/" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/2.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://jqueryfordesigners.com/demo/coda-bubble.html" target="_blank">查看演示</a></p>
<h3>3. <a title="10 Super jQuery Tutorials" href="http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/" target="_blank">Creating a Dynamic Poll with jQuery and PHP</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-dynamic-poll-with-jquery-and-php/" target="_blank"> <img src="http://dpxmag.com/articles/thiefunu/4/3.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://net.tutsplus.com/demos/test_poll/" target="_blank">查看演示</a></p>
<h3>4. <a title="10 Super jQuery Tutorials" href="http://www.kriesi.at/archives/apple-menu-improved-with-jquery">Create an apple style menu and improve it via jQuery</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://www.kriesi.at/archives/apple-menu-improved-with-jquery" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/4.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://www.kriesi.at/wp-content/extra_data/kwicks_tutorial/kwicks_final.html" target="_blank">查看演示</a></p>
<h3>5. <a title="10 Super jQuery Tutorials" href="http://nettuts.com/tutorials/wordpress/tabbed-content-using-jquery-and-wp_query/" target="_blank">Tabbed Content using jQuery and WP_Query</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://nettuts.com/tutorials/wordpress/tabbed-content-using-jquery-and-wp_query/" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/5.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://nettuts.s3.amazonaws.com/024_Tabbed/preview/preview.html" target="_blank">查看演示</a></p>
<h3>6. <a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/slide-out-and-drawer-effect/" target="_blank">Slide out and drawer effect</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/slide-out-and-drawer-effect/" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/6.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://jqueryfordesigners.com/demo/plugin-slide-demo.html" target="_blank">查看演示</a></p>
<h3>7. <a title="10 Super jQuery Tutorials" href="http://net.tutsplus.com/tutorials/wordpress/wordpress-sidebar-turned-apple-flashy-using-jquery-ui/" target="_blank">Wordpress Sidebar Turned Apple-Flashy Using jQuery UI</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://net.tutsplus.com/tutorials/wordpress/wordpress-sidebar-turned-apple-flashy-using-jquery-ui/" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/7.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://nettuts.s3.amazonaws.com/028_jQuerySidebar/preview/preview.html" target="_blank">查看演示</a></p>
<h3>8. <a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/image-fade-revisited/" target="_blank">Image Fade Revisited</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://jqueryfordesigners.com/image-fade-revisited/" target="_blank"> <img src="http://dpxmag.com/articles/thiefunu/4/8.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://jqueryfordesigners.com/demo/fade-revisited.html" target="_blank">查看演示</a></p>
<h3>9. <a title="10 Super jQuery Tutorials" href="http://opiefoto.com/articles/photoslider" target="_blank">Photo Slider Tutorial</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://opiefoto.com/articles/photoslider" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/9.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://opiefoto.com/articles/photoslider#example" target="_blank">查看演示</a></p>
<h3>10. <a title="10 Super jQuery Tutorials" href="http://nettuts.com/tutorials/html-css-techniques/how-to-create-a-slick-tabbed-content-area/" target="_blank">Create a Slick Tabbed Content Area using CSS &amp; jQuery</a></h3>
<p><a title="10 Super jQuery Tutorials" href="http://nettuts.com/tutorials/html-css-techniques/how-to-create-a-slick-tabbed-content-area/" target="_blank"><br />
<img src="http://dpxmag.com/articles/thiefunu/4/10.png" alt="jquery tutorials" width="580" height="220" /><br />
</a><br />
<a title="View Demonstration" href="http://nettuts.s3.amazonaws.com/001_Tabbed/site/jQuery.html" target="_blank">查看演示</a></p>
<p>原文链接：<a href="http://dpxmag.com/10-super-jquery-tutorials.html">http://dpxmag.com/10-super-jQuery-tutorials.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/515/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery入门指南教程</title>
		<link>http://www.52ebuy.com/archives/500</link>
		<comments>http://www.52ebuy.com/archives/500#comments</comments>
		<pubDate>Tue, 16 Feb 2010 00:20:52 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[入门指南]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=500</guid>
		<description><![CDATA[
Hello jQuery
在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面... ]]></description>
			<content:encoded><![CDATA[<div>
<h2 id="hello">Hello jQuery</h2>
<p>在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:</p>
<pre>$(document).ready(function() {
	// do stuff when DOM is ready
});</pre>
<p>放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert.</p>
<pre>$(document).ready(function() {
	$('a').click(function() {
		alert('Hello world!');
	});
});</pre>
<p>这样在你点击页面的一个链接时都会触发这个&#8217;Hello world&#8217;的提示。</p>
<p><span id="more-500"></span>让我们看一下这些修改是什么含义。$(&#8216;a&#8217;) 是一个jQuery选择器(selector),在这里，它选择所有的a标签（译者Keel注：即&lt;a&gt;&lt;/a&gt;），$号 是 jQuery “类”(jQuery &#8216;class&#8217;)的一个别称，因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个jQuery对象的一个方法，它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法.</p>
<p>这里有一个拟行相似功能的代码:</p>
<pre>&lt;a href='#' onclick='alert('Hello world')'&gt;Link&lt;/a&gt;</pre>
<p>不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.</p>
<h2 id="find">Find me:使用选择器和事件</h2>
<p>jQuery提供两种方式来选择html的elements，第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构 造器（如：$(&#8216;div &gt; ul a&#8217;)）；第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用。</p>
<p>为了测试一下这些选择器，我们来试着在我们starterkit.html中选择并修改第一个ordered list.</p>
<p>一开始，我们需要选择这个list本身，这个list有一个ID叫“orderedlist”，通常的javascript写法是document.getElementById(&#8216;orderedlist&#8217;).在jQuery中，我们这样做：</p>
<pre>$(document).ready(function() {
	$('#orderedlist').addClass('red');
});</pre>
<p>这里将starterkit中的一个CSS样式red附加到了orderedlist上(译者Keel注：参考测试包中的css目录下的core.css，其中定义了red样式)。因此，在你刷新了starterkit.html后，你将会看到第一个有序列表(ordered list )背景色变成了红色，而第二个有序列表没有变化.</p>
<p>现在，让我们添加一些新的样式到list的子节点.</p>
<pre>$(document).ready(function() {
	$('#orderedlist &gt; li').addClass('blue');
});</pre>
<p>这样，所有orderedlist中的li都附加了样式&#8217;blue&#8217;。</p>
<p>现在我们再做个复杂一点的，当把鼠标放在li对象上面和移开时进行样式切换，但只在list的最后一个element上生效。</p>
<pre>$(document).ready(function() {
	$('#orderedlist li:last').hover(function() {
		$(this).addClass('green');
	}, function() {
		$(this).removeClass('green');
	});
});</pre>
<p>用这些选择器和事件你已经可以做很多的事情了，但这里有一个更强的好东东！</p>
<pre>$(document).ready(function() {
	$('#orderedlist').find('li').each(function(i) {
		$(this).html( $(this).html() + ' BAM! ' + i );
	});
});</pre>
<p>find() 让你在已经选择的element中作条件查找,因此 $(&#8216;#orderedlist).find(&#8216;li&#8217;) 就像 $(&#8216;#orderedlist li&#8217;)一样。each()方法迭代了所有的li，并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字，并将之设置为li的html文本。（译者Keel注：从这个例子可以看到.html()方法是获取对象的html代码，而.html(&#8216;xxx&#8217;)是设置&#8217;xxx&#8217;为对象的html代码）<br />
另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法，想像一个在你用AJAX方式成功提交后的reset：</p>
<pre>$(document).ready(function() {
	// use this to reset a single form
	$('#reset').click(function() {
		$('#form')[0].reset();
	});
});</pre>
<p>这个代码选择了所有ID为&#8217;form&#8217;的元素，并在其第一个上call了一个reset()。如果你有一个以上的form，你可以这样做：</p>
<pre>$(document).ready(function() {
	// use this to reset several forms at once
	$('#reset').click(function() {
		$('form').each(function() {
			this.reset();
		});
	});
});</pre>
<p>这样你在点击Reset链接后，就选择了文档中所有的form元素，并对它们都执行了一次reset()。</p>
<p>还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list，你想要选择所有的没有ul子元素的li元素。</p>
<pre>$(document).ready(function() {
	$('li').not(':has(ul)').css('border', '1px solid black');//原文为$('li').not('[ul]').css('border', '1px solid black');
});</pre>
<p>这个代码选择了所有的li元素，然后去除了有ul子元素的li元素。刷新浏览器后，所有的li元素都有了一个边框，只有ul子元素的那个li元素例外。<br />
可以在子元素和属性(elements and attributes)上用作过滤器，比如你可能想选择所有的带有name属性的链接:</p>
<pre>$(document).ready(function() {
	$('a[name]').css('background-color','#eee'); //原文为“$('a[@name]').background('#eee');”在jQuery1.2及以上版本中,@符号应该去除,background方法被css方法取代
});</pre>
<p>这个代码给所有带有name属性的链接加了一个背景色<br />
更常见的情况是以name来选择链接，你可能需要选择一个有特点href属性的链接，这在不同的浏览器下对href的理解可能会不一致，所以我们的部分匹配(&#8216;*=&#8217;)的方式来代替完全匹配(&#8216;=&#8217;)：</p>
<pre>$(document).ready(function() {
	$('a[href*=/content/gallery]').click(function() {
		// do something with all links that point somewhere to /content/gallery
	});
});</pre>
<p>到现在为止，选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素，比如一个FAQ的页面，答案首先会隐藏，当问题点击时，答案显示出来，jQuery代码如下：</p>
<pre>$(document).ready(function() {
	$('#faq').find('dd').hide().end().find('dt').click(function() {
         var answer = $(this).next();
         if (answer.is(':visible')) {
             answer.slideUp();
         } else {
             answer.slideDown();
         }
     });
});</pre>
<p>这里我们用了一些链式表达法来减少代码量，而且看上去更直观更容易理解。像&#8217;#faq&#8217; 只选择了一次，利用end()方法，第一次find()方法会结束(undone)，所以我们可以接着在后面继续find(&#8216;dt&#8217;)，而不需要再 写$(&#8216;#faq&#8217;).find(&#8216;dt&#8217;)。<br />
在点击事件中的，我们用 $(this).next() 来找到dt下面紧接的一个dd元素，这让我们可以快速地选择在被点击问题下面的答案。<br />
除了选择同级别的元素外，你也可以选择父级的元素。可能你想在用户鼠标移到文章某段的某个链接时，它的父级元素&#8211;也就是文章的这一段突出显示，试试这个：</p>
<pre>$(document).ready(function() {
	$('a').hover(function() {
		$(this).parents('p').addClass('highlight');
	}, function() {
		$(this).parents('p').removeClass('highlight');
	});
});</pre>
<p>测试效果可以看到，移到文章某段的链接时，它所在的段全用上highlight样式，移走之后又恢复原样。<br />
在我们继续之前我们先来看看这一步： jQuery会让代码变得更短从而更容易理解和维护，下面是$(document).ready(callback)的缩写法：</p>
<pre>$(function() {
	// code to execute when the DOM is ready
});</pre>
<p>应用到我们的Hello world例子中，可以这样:</p>
<pre>$(function() {
	$('a').click(function() {
		alert('Hello world!');
	});
});</pre>
<div>现在，我们手上有了这些基础的知识，我们可以更进一步的探索其它方面的东西，就从AJAX开始！</p>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://api.jquery.com/">jQuery API documentation</a></li>
<li><a href="http://visualjquery.com/">Visual jQuery &#8211; A categorized browsable API documentation</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/CSS/">jQuery Expressions: CSS</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/XPath/">jQuery Expressions: XPath</a></li>
<li><a href="http://jquery.com/docs/Base/Expression/Custom/">jQuery Expressions: Custom</a></li>
<li><a href="http://jquery.com/docs/EventModule/">jQuery Special Events</a></li>
<li><a href="http://jquery.com/docs/Base/Traverse/">jQuery DOM Traversing</a></li>
</ul>
<div>
<h2 id="rate">Rate me:使用AJAX</h2>
<p>在这一部分我们写了一个小小的AJAX应用，它能够rate一些东西（译Keel注：就是对某些东西投票），就像在youtube.com上面看到的一样。</p>
<p>首先我们需要一些服务器端代码，这个例子中用到了一个PHP文件，读取rating参数然后返回rating总数和平均数。看一下<a href="http://www.k99k.com/rate.phps">rate.php</a>代码.</p>
<p>虽然这些例子也可以不使用AJAX来实现，但显示我们不会那么做，我们用jQuery生成一个DIV容器，ID是&#8217;rating&#8217;.</p>
<pre>$(document).ready(function() {
	// generate markup
	var ratingMarkup = ['Please rate: '];
	for(var i=1; i &lt;= 5; i++) {
		ratingMarkup[ratingMarkup.length] = '&lt;a href='#'&gt;' + i + '&lt;/a&gt; ';
	}
	// add markup to container and applier click handlers to anchors
	$('#rating').append( ratingMarkup.join('') ).find('a').click(function(e) {
		e.preventDefault();
		// send requests
		$.post('rate.php', {rating: $(this).html()}, function(xml) {
			// format result
			var result = [
				'Thanks for rating, current average: ',
				$('average', xml).text(),
				', number of votes: ',
				$('count', xml).text()
			];
			// output result
			$('#rating').html(result.join(''));
		} );
	});
});</pre>
<p>这段代码生成了5个链接，并将它们追加到id为&#8217;rating&#8217;容器中，当其中一个链接被点击时，该链接标明的分数就会以rating参数形式发送到rate.php，然后，结果将以XML形式会从服务器端传回来，添加到容器中，替代这些链接。<br />
如果你没有一个安装过PHP的webserver，你可以看看这个<a href="http://www.k99k.com/example-rateme.html">在线的例子</a>.<br />
不使用javascript实现的例子可以访问 <a href="http://www.softonic.de/ie/51494">softonic.de</a> 点击 &#8216;Kurz bewerten!&#8217;<br />
更多的AJAX方法可以从<a title="Documentation for AJAX methods" href="http://jquery.com/docs/AJAXModule/">这里</a> 找到，或者看看<a href="http://visualjquery.com/">API文档</a> 下面的AJAX filed under AJAX.<br />
一个在使用AJAX载入内容时经常发生的问题是：当载入一个事件句柄到一个HTML文档时，还需要在载入内容上应用这些事件，你不得不在内容加载完成后应用这些事件句柄，为了防止代码重复执行，你可能用到如下一个function:</p>
<pre>// lets use the shortcut
$(function() {
	var addClickHandlers = function() {
		$('a.clickMeToLoadContent').click(function() {
			$('#target').load(this.href, addClickHandlers);
		});
	};
	addClickHandlers();
});</pre>
<p>现在，addClickHandlers只在DOM载入完成后执行一次，这是在用户每次点击具有clickMeToLoadContent 这个样式的链接并且内容加载完成后.<br />
请注意addClickHandlers函数是作为一个局部变量定义的，而不是全局变量(如：function addClickHandlers() {&#8230;})，这样做是为了防止与其他的全局变量或者函数相冲突.<br />
另一个常见的问题是关于回调(callback)的参数。你可以通过一个额外的参数指定回调的方法，简单的办法是将这个回调方法包含在一个其它的function中:</p>
<pre>// get some data
var foobar = ...;
// specify handler, it needs data as a paramter
var handler = function(data) {
  ...
};
// add click handler and pass foobar!
$('a').click( function(event) { handler(foobar); } );

// if you need the context of the original handler, use apply:
$('a').click( function(event) { handler.apply(this, [foobar]); } );</pre>
<p>用到简单的AJAX后，我们可以认为已经非常之“web2.0”了，但是到现在为止，我们还缺少一些酷炫的效果。下一节将会谈到这些效果.</p>
<div>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/docs/AJAXModule/">jQuery AJAX Module</a></li>
<li><a href="http://api.jquery.com/">jQuery API: Contains description and examples for append and all other jQuery methods</a></li>
<li><a href="http://jquery.com/demo/thickbox/">ThickBox: A jQuery plugin that uses jQuery to enhance the famous lightbox</a></li>
</ul>
<div>
<h2 id="animate">Animate me(让我生动起来):使用FX</h2>
<p>一些动态的效果可以使用 <code>show()</code> 和 <code>hide()</code>来表现:</p>
<pre>$(document).ready(function() {
	$('a').toggle(function() {
		$('.stuff').hide('slow');
	}, function() {
		$('.stuff').show('fast');
	});
});</pre>
<p>你可以与 <code>animate()</code>联合起来创建一些效果,如一个带渐显的滑动效果:</p>
<pre>$(document).ready(function() {
	$('a').toggle(function() {
		$('.stuff').animate({
			height: 'hide',
			opacity: 'hide'
		}, 'slow');
	}, function() {
		$('.stuff').animate({
			height: 'show',
			opacity: 'show'
		}, 'slow');
	});
});</pre>
<p>很多不错的效果可以访问<a href="http://interface.eyecon.ro/">interface plugin collection</a>. 这个站点提供了很多demos和文档<br />
这些效果插件是位于jQuery插件列表的前面的，当然也有很多其他的插件，比如我们下一章讲到的表格排序插件。</p>
<div>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/docs/FxModule/">jQuery FX Module</a></li>
<li><a href="http://interface.eyecon.ro/">Interface plugin</a></li>
</ul>
<div>
<h2 id="sort">Sort me(将我有序化):使用tablesorter插件(表格排序)</h2>
<p>这个表格排序插件能让我们在客户端按某一列进行排序，引入jQuery和这个插件的js文件，然后告诉插件你想要哪个表格拥有排序功能。<br />
要测试这个例子，先在starterkit.html中加上像下面这一行的代码：</p>
<pre>&lt;script src='lib/jquery.tablesorter.js' type='text/javascript'&gt;&lt;/script&gt;</pre>
<p>然后可以这样调用不着:</p>
<pre>$(document).ready(function() {
	$('#large').tableSorter();
});</pre>
<p>现在点击表格的第一行head区域，你可以看到排序的效果，再次点击会按倒过来的顺序进行排列。<br />
这个表格还可以加一些突出显示的效果，我们可以做这样一个隔行背景色（斑马线）效果:</p>
<pre>$(document).ready(function() {
	$('#large').tableSorter({
		stripingRowClass: ['odd','even'],	// Class names for striping supplyed as a array.
		stripRowsOnStartUp: true		// Strip rows on tableSorter init.
	});
});</pre>
<p>关于这个插件的更多例子和文档可以在 <a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/">tablesorter首页</a>找到.<br />
几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的<br />
经常更新的插件列表可以从jQuery官方站 <a title="Plugins for jQuery" href="http://jquery.com/plugins/">on the jQuery site</a>找到.<br />
当你更经常地使用jQuery时,你会发现将你自己的代码打包成插件是很有用处的,它能方便地让你的公司或者其他人进行重用.下一章我们将谈到如何构建一个自己的插件.</p>
<div>
<h4>本章的相关链接:</h4>
<ul>
<li><a href="http://jquery.com/plugins/">Plugins for jQuery</a></li>
<li><a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/">Tablesorter Plugin</a></li>
</ul>
<div>
<h2 id="plug">Plug me:制作自己的插件</h2>
<p>写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.</p>
<ol>
<li>为你的插件取一个名字,在这个例子里面我们叫它&#8217;foobar&#8217;.</li>
<li>创建一个像这样的文件:jquery.[yourpluginname].js,比如我们创建一个jquery.foobar.js</li>
<li>创建一个或更多的插件方法,使用继承jQuery对象的方式,如:
<pre>jQuery.fn.foobar = function() {
	// do something
};</pre>
</li>
<li>可选的:创建一个用于帮助说明的函数,如:
<pre>jQuery.fooBar = {
	height: 5,
	calculateBar = function() { ... },
	checkDependencies = function() { ... }
};</pre>
<p>你现在可以在你的插件中使用这些帮助函数了:</p>
<pre>jQuery.fn.foobar = function() {
	// do something
	jQuery.foobar.checkDependencies(value);
	// do something else
};</pre>
</li>
<li>可选的l:创建一个默认的初始参数配置,这些配置也可以由用户自行设定,如:
<pre>jQuery.fn.foobar = function(options) {
	var settings = {
		value: 5,
		name: 'pete',
		bar: 655
	};
	if(options) {
		jQuery.extend(settings, options);
	}
};</pre>
<p>现在可以无需做任何配置地使用插件了,默认的参数在此时生效:</p>
<pre>$('...').foobar();</pre>
<p>或者加入这些参数定义:</p>
<pre>$('...').foobar({
	value: 123,
	bar: 9
});</pre>
</li>
</ol>
<p>如果你release你的插件, 你还应该提供一些例子和文档,大部分的插件都具备这些良好的参考文档.<br />
现在你应该有了写一个插件的基础,让我们试着用这些知识写一个自己的插件.<br />
很多人试着控制所有的radio或者checkbox是否被选中,比如:</p>
<pre>$('input[type='checkbox']').each(function() {
	this.checked = true;
	// or, to uncheck
	this.checked = false;
	// or, to toggle
	this.checked = !this.checked;
});</pre>
<div>
<p>注：在jQuery1.2及以上版本中，选择所有checkbox应该使用 input:checkbox , 因此以上代码第一行可写为:</p>
<p>$(&#8216;input:checkbox&#8217;).each(function() {</p>
</div>
<p>无论何时候，当你的代码出现each时，你应该重写上面的代码来构造一个插件,很直接地:</p>
<pre>$.fn.check = function() {
	return this.each(function() {
		this.checked = true;
	});
};</pre>
<p>这个插件现在可以这样用:</p>
<pre>$('input:checkbox').check();</pre>
<div>注：在jQuery1.2及以上版本中，选择所有checkbox应该使用 input:checkbox 原文为：$(&#8216;input[type='checkbox']&#8216;).check();</div>
<p>现在你应该还可以写出uncheck()和toggleCheck()了.但是先停一下,让我们的插件接收一些参数.</p>
<pre>$.fn.check = function(mode) {
	var mode = mode || 'on'; // if mode is undefined, use 'on' as default
	return this.each(function() {
		switch(mode) {
		case 'on':
			this.checked = true;
			break;
		case 'off':
			this.checked = false;
			break;
		case 'toggle':
			this.checked = !this.checked;
			break;
		}
	});
};</pre>
<p>这里我们设置了默认的参数,所以将&#8217;on&#8217;参数省略也是可以的,当然也可以加上&#8217;on&#8217;,'off&#8217;, 或 &#8216;toggle&#8217;,如:</p>
<pre>$('input[type='checkbox']').check();
$('input[type='checkbox']').check('on');
$('input[type='checkbox']').check('off');
$('input[type='checkbox']').check('toggle');</pre>
<p>如果有多于一个的参数设置会稍稍有点复杂,在使用时如果只想设置第二个参数,则要在第一个参数位置写入null.<br />
从上一章的tablesorter插件用法我们可以看到,既可以省略所有参数来使用或者通过一个 key/value 对来重新设置每个参数.<br />
作为一个练习,你可以试着将 <a href="http://www.k99k.com/jQuery_getting_started.html#rate">第四章</a> 的功能重写为一个插件.这个插件的骨架应该是像这样的:</p>
<pre>$.fn.rateMe = function(options) {
	var container = this; // instead of selecting a static container with $('#rating'), we now use the jQuery context

	var settings = {
		url: 'rate.php'
		// put more defaults here
		// remember to put a comma (',') after each pair, but not after the last one!
	};

	if(options) { // check if options are present before extending the settings
		$.extend(settings, options);
	}

	// ...
	// rest of the code
	// ...

	return this; // if possible, return 'this' to not break the chain
});</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><!-- /content --></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/500/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>写给设计人的10个jQuery特效</title>
		<link>http://www.52ebuy.com/archives/486</link>
		<comments>http://www.52ebuy.com/archives/486#comments</comments>
		<pubDate>Fri, 12 Feb 2010 02:03:38 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[特效]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=486</guid>
		<description><![CDATA[
jQuery已经不是什么新鲜的事儿，记得第一次听说是在catch the digital  flow上。总把它认为是非常难的东西，也就没有认真去了解他了。直到学完CSS的大部分内容，才开始接触这种&#8221;write less, do m... ]]></description>
			<content:encoded><![CDATA[<div>
<p>jQuery已经不是什么新鲜的事儿，记得第一次听说是在<a title="catch the digital flow｜北极冰仔部落格" href="http://hellobmw.com/">catch the digital  flow</a>上。总把它认为是非常难的东西，也就没有认真去了解他了。直到学完CSS的大部分内容，才开始接触这种&#8221;write less, do more&#8221;  的Javascrīpt框架。今天，这篇文章的最重要内容是来自<a href="http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/">Web  Designer  Wall</a>的一篇教程，一篇包含了10个jQuery特效的教程。这里不打算全文翻译，想以自己的语言来表达，或许这样更方便大家理解/自己以后学习，也可能更准确地描述。</p>
<p>提示：教程中所用的 jQuery  版本为1.2.3。这篇文章是为jQuery新手而写的。</p>
<p>先试试看？ <a href="http://www.webdesignerwall.com/demo/jquery/">View jQuery  Demos</a> ｜ <a title="Download source files" href="http://www.webdesignerwall.com/file/jquery-tutorials.zip">Download Demo  ZIP</a></p>
<h3><span id="more-486"></span>jQuery是如何工作的?</h3>
<p>首先，你需要下载一个<a href="http://jquery.com/" target="_top">jQuery</a>版本，并将它插入到<code>&lt;head&gt;</code>标签内。然后，你将需要写函数来告诉jQuery做些什么，下面的这个图表将告诉你jQuery是怎样工作的（点击图片，查看大图）：</p>
<p><a title="jquery-how-it-works by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2576325873/"><img src="http://farm4.static.flickr.com/3258/2576325873_b868b96531_o.gif" alt="jquery-how-it-works" width="500" height="240" /></a> ！</p>
<h3>如何获取元素（Get the element）?</h3>
<p>书写 jQuery 函数是一个非常简单的事（多亏了精彩的<a href="http://docs.jquery.com/Main_Page" target="_top">说明书</a>）。关键是你要学习如何获取你想要实现的效果的确切元素。</p>
<ul>
<li><code>$("#header")</code> = 获取 id=&#8221;header&#8221; 的元素</li>
<li><code>$("h3")</code> = 获取所有&lt;h3&gt;</li>
<li><code>$("div#content .photo")</code> = 获取&lt;div  id=&#8221;content&#8221;&gt;里所有用class=&#8221;photo&#8221;定义的元素</li>
<li><code>$("ul li")</code> = 获取所以 &lt;ul&gt; 中 &lt;li&gt; 的元素</li>
<li><code>$("ul li:first")</code> = 只获取&lt;ul&gt;中第一个&lt;li&gt;</li>
</ul>
<h3><em>1.</em> 简单的下拉面板</h3>
<p>让我们来开始这个简单的下拉面板特效吧<em>(view</em> <a href="http://www.webdesignerwall.com/demo/jquery/simple-slide-panel.html"><em>demo</em></a><em>)，</em>或许你已经见过很多次，现在，自己试试吧：</p>
<p><a title="sample1 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156008/"><img src="http://farm4.static.flickr.com/3194/2577156008_0ac3cb8ae9_o.gif" alt="sample1" width="480" height="201" /></a></p>
<p>当包含class=&#8221;btn-slide&#8221;的元素被点击，它会下拉/上提&lt;div id=&#8221;panel&#8221;&gt;里的元素。然后切换到CSS中的class=&#8221;active&#8221;到&lt;a class=&#8221;btn-slide&#8221;&gt;元素。.active 将会以CSS的方式打开/关闭出面板。</p>
<pre><code>$(document).ready(function(){

	$(".btn-slide").click(function(){	  $("#panel").slideToggle("slow");	  $(this).toggleClass("active");	});

});</code></pre>
<h3><em>2.</em> 简单的隐藏效果</h3>
<p>如图，当右上角的上图标被点击时，内容被隐藏。效果可以看Demo <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/simple-disappear.html">demo</a>)</em></p>
<p><a title="sample2 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156028/"><img src="http://farm4.static.flickr.com/3081/2577156028_cb3e3816af_o.gif" alt="sample2" width="480" height="192" /></a></p>
<p>当被定义为 &lt;img&gt; 的图片被点击，它会手找到父级元素 &lt;div&gt;  并激活它的能力，慢慢消失，隐藏起来。</p>
<pre><code>$(document).ready(function(){

	$(".pane .delete").click(function(){	  $(this).parents(".pane").animate({ opacity: "hide" }, "slow");	});

});</code></pre>
<h3><em>3</em> 连续过渡效果</h3>
<p>让我们来看看jQuery连贯性的威力吧。只需要几行代码，我能让这个方块渐变+缩放比例地飞来飞去<em>(view <a href="http://www.webdesignerwall.com/demo/jquery/chainable-effects.html">demo</a>)</em></p>
<p><a title="multi-animation by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156042/"><img src="http://farm4.static.flickr.com/3071/2577156042_04b509fd1f_o.gif" alt="multi-animation" width="480" height="173" /></a></p>
<p><strong>Line 1</strong>: 当 &lt;a&gt; 被点击<br />
<strong>Line  2</strong>: 激活 &lt;div id=&#8221;box&#8221;&gt; 的不透明度（opacity）=0.1，直到值达到400px，速度达到1200px/ms<br />
<strong>Line 3</strong>: 当opacity=0.4,  top=160px,height=20,width=20,以&#8221;slow&#8221;显示<br />
<strong>Line 4</strong>: 当opacity=1,  left=0, height=100, width=100,也以&#8221;slow&#8221;显示<br />
<strong>Line 5</strong>:  当opacity=1, left=0, height=100, width=100, 也以&#8221;slow&#8221;显示<br />
<strong>Line  6</strong>: 当top=0, 以&#8221;fast&#8221;显示<br />
<strong>Line 7</strong>: 然后，以常速上滑 (default  speed = &#8220;normal&#8221;)<br />
<strong>Line 8</strong>: 然后以&#8221;slow&#8221;下滑<br />
<strong>Line  9</strong>:返回失效会阻止浏览器跳向链接锚点</p>
<pre><code>$(document).ready(function(){

	$(".run").click(function(){

	  $("#box").animate({opacity: "0.1", left: "+=400"}, 1200)	  .animate({opacity: "0.4", top: "+=160", height: "20", width: "20"}, "slow")	  .animate({opacity: "1", left: "0", height: "100", width: "100"}, "slow")	  .animate({top: "0"}, "fast")	  .slideUp()	  .slideDown("slow")	  return false;

	});

});</code></pre>
<h3><em>4a.</em> 可折叠的模式 #1</h3>
<p>这是第一个可折叠的样式， <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/accordion1.html">demo</a>)</em></p>
<p><a title="sample3 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156172/"><img src="http://farm4.static.flickr.com/3058/2577156172_ce69e5a942_o.gif" alt="sample3" width="480" height="237" /></a></p>
<p>第一行将向&lt;div&gt; 内的第一个&lt;H3&gt; 添加一个CSS class为&#8221;active&#8221;的值。 第二行刚是隐藏&lt;div&gt;内非第一个&lt; p &gt;的内容。</p>
<p>当 &lt;h3&gt; 被点击时，当前&lt;p&gt;下拉，而原先下拉的&lt;p&gt; 上提。</p>
<pre><code>$(document).ready(function(){

	$(".accordion h3:first").addClass("active");	$(".accordion p:not(:first)").hide();

	$(".accordion h3").click(function(){

	  $(this).next("p").slideToggle("slow")	  .siblings("p:visible").slideUp("slow");	  $(this).toggleClass("active");	  $(this).siblings("h3").removeClass("active");

	});

});</code></pre>
<h3><em>4b.</em> 可折叠模式 #2</h3>
<p>这个实例与#1非常类似，不过，它会让指定的面板像默认面板一样打开<em>(view <a href="http://www.webdesignerwall.com/demo/jquery/accordion2.html">demo</a>)</em></p>
<p>在CSS样式表中，设置<code>.accordion p</code> 为  <code>display:none。</code>现在，如果你像默认打开的样式一样，打开第三个面板，你可以写<code>$(".accordion2  p").eq(2).show();</code> (eq =  equal)来实现它，需要注意的是起始点是&#8221;0&#8243;，而不是&#8221;1&#8243;，所以，第三个相应的是&#8221;2&#8243;，而不是&#8221;3&#8243;。</p>
<pre><code>$(document).ready(function(){

	$(".accordion2 h3").eq(2).addClass("active");	$(".accordion2 p").eq(2).show();

	$(".accordion2 h3").click(function(){	  $(this).next("p").slideToggle("slow")	  .siblings("p:visible").slideUp("slow");	  $(this).toggleClass("active");	  $(this).siblings("h3").removeClass("active");	});

});</code></pre>
<h3><em>5a.</em> 鼠标经过激活效果 #1</h3>
<p>这个将会实现一个非常漂亮的，当鼠标经过时出现渐变出现的效果 <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/animated-hover1.html">demo</a>)</em></p>
<p><a title="sample4 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2576326105/"><img src="http://farm4.static.flickr.com/3121/2576326105_1e0530df37_o.gif" alt="sample4" width="480" height="360" /></a></p>
<p>当鼠标经过菜单时，它会寻找紧接着的&lt;em&gt;，并在上方激活它的不透明度。</p>
<pre><code>$(document).ready(function(){

	$(".menu a").hover(function() {	  $(this).next("em").animate({opacity: "show", top: "-75"}, "slow");	}, function() {	  $(this).next("em").animate({opacity: "hide", top: "-85"}, "fast");	});

});</code></pre>
<h3><em>5b.</em> 鼠标经过激活 #2</h3>
<p>这个实例会显示菜单中链接的<code>title</code> 属性attribute，让其以变数方式存在，并添加&lt;em&gt;标签  <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/animated-hover2.html">demo</a>)</em></p>
<p><a title="sample4b by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156264/"><img src="http://farm4.static.flickr.com/3160/2577156264_bc64c330b3_o.gif" alt="sample4b" width="480" height="278" /></a></p>
<p>第一行会添加一个空的<code>&lt;em&gt;</code>到菜单的<code>&lt;a&gt;</code>元素。</p>
<p>当鼠标经过菜单链接时，它会显示title的属性，让它以&#8221;hoverText（隐藏）&#8221;的形式显示，并使<code>&lt;em&gt;</code>中的文字显示隐藏文本的值。</p>
<pre><code>$(document).ready(function(){

	$(".menu2 a").append("&lt;em&gt;&lt;/em&gt;");

	$(".menu2 a").hover(function() {	  $(this).find("em").animate({opacity: "show", top: "-75"}, "slow");	  var hoverText = $(this).attr("title");	  $(this).find("em").text(hoverText);	}, function() {	  $(this).find("em").animate({opacity: "hide", top: "-85"}, "fast");	});

});</code></pre>
<h3><em>6.</em> 整块可点击性效果</h3>
<p>这个实例将会教你如何实现内容中元素可点击性效果，<a href="http://bestwebgallery.com/" target="_top">Best  Web Gallery</a>的侧边栏Tab就显示这样的效果 <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/block-clickable.html">demo</a>)</em></p>
<p><a title="sample5 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2576326173/"><img src="http://farm4.static.flickr.com/3171/2576326173_dc1dde810a_o.gif" alt="sample5" width="480" height="253" /></a></p>
<p>如果你想让class=&#8221;pane-list&#8221;的&lt;ul&gt;内的 <code>&lt;li&gt;</code> 可点击(整块)，你可以向 &#8220;.pane-list li&#8221;指派一个函数，使它被点击时，函数找到  <code>&lt;a&gt;</code>元素，重定向到它的<code>href</code>属性值。</p>
<pre><code>$(document).ready(function(){

	$(".pane-list li").click(function(){	  window.location=$(this).find("a").attr("href"); return false;	});

});</code></pre>
<h3><em>7.</em> 可收缩面板</h3>
<p>让我们组合一下上面的实例，创造一给可收缩的面板（像Gmai收件箱面板l）。作者还在Web Designer Wall 的评论列表<a href="http://www.next2friends.com/" target="_top">Next2Friends</a>里应用这个<em>(view  <a href="http://www.webdesignerwall.com/demo/jquery/collapsible-panels.html">demo</a>)</em></p>
<p><a title="sample6 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2579629684/"><img src="http://farm4.static.flickr.com/3273/2579629684_7131919a92_o.gif" alt="sample6" width="480" height="286" /></a></p>
<p><strong>First line</strong>: 隐藏&lt;div&gt;里第一个元素以后的元素<br />
<strong>Second line</strong>: 隐藏所有第5个&lt;li&gt;后面的元素<br />
<strong>Third  part</strong>: 当&lt;p&gt;被点击里，显示/隐藏&lt;div &gt;<br />
<strong>Fourth part</strong>: 当&lt;a &gt; 被点击时，上提所有&lt;div&gt;的元素<br />
<strong>Fifth part</strong>: 当&lt;a&gt;  被点击，隐藏它，并显示&lt;a&gt;，并下拉第5个&lt;li&gt;以后的元素<br />
<strong>Sixth part</strong>: 当&lt;a&gt;  被点击时，隐藏它，并显示&lt;a&gt;，并上提第5个 &lt;li&gt;以后的元素</p>
<pre><code>$(document).ready(function(){

	//hide message_body after the first one	$(".message_list .message_body:gt(0)").hide();

	//hide message li after the 5th	$(".message_list li:gt(4)").hide();

	//toggle message_body	$(".message_head").click(function(){	  $(this).next(".message_body").slideToggle(500)	  return false;	});

	//collapse all messages	$(".collpase_all_message").click(function(){	  $(".message_body").slideUp(500)	  return false;	});

	//show all messages	$(".show_all_message").click(function(){	  $(this).hide()	  $(".show_recent_only").show()	  $(".message_list li:gt(4)").slideDown()	  return false;	});

	//show recent messages only	$(".show_recent_only").click(function(){	  $(this).hide()	  $(".show_all_message").show()	  $(".message_list li:gt(4)").slideUp()	  return false;	});

});</code></pre>
<h3><em>8.</em> 模仿WordPress后台评论管理面板</h3>
<p>我想你可能见过最多次这个效果是在Wordpress后台的评论管理面板。那好，让我们来用jQuery来模仿它的效果。为了实现背景颜色，你需要包含<a href="http://plugins.jquery.com/project/color" target="_top"><strong>Color  Animations</strong></a>这个插件<em>(view</em> <a href="http://www.webdesignerwall.com/demo/jquery/wordpress-comments.html"><em>demo</em></a><em>)</em></p>
<p><a href="http://www.webdesignerwall.com/demo/jquery/wordpress-comments.html"><img src="http://www.webdesignerwall.com/wp-content/uploads/2008/02/sample7.gif" alt="sample" width="480" height="368" /></a></p>
<p><strong>First line</strong>: 向&lt;div&gt; 添加 &#8220;alt&#8221; class<br />
<strong>Second part</strong>: 当&lt;a&gt;被点击，激活&lt;div &gt;的不透明度<br />
<strong>Third part</strong>: 当&lt;a &gt;被点击， 首先让&lt;div &gt;显示黄色，然后变为白色，并添加类（addClass）&#8221;spam&#8221;<br />
<strong>Fourth  part</strong>: 当&lt;a&gt;被点击，首先让&lt;div &gt;显示绿色，然后变为白色，并移除类（removeClass）&#8221;spam&#8221;<br />
<strong>Fifth  part</strong>: 当&lt;a&gt;被点击，激活背景色为red并使其opacity =&#8221;hide&#8221;</p>
<pre><code>//don't forget to include the Color Animations plugin//&lt;script type="text/javascript" src="jquery.color.js"&gt;&lt;/script&gt;

$(document).ready(function(){

	$(".pane:even").addClass("alt");

	$(".pane .btn-delete").click(function(){	  alert("This comment will be deleted!");

	  $(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")	  .animate({ opacity: "hide" }, "slow")	  return false;	});

	$(".pane .btn-unapprove").click(function(){	  $(this).parents(".pane").animate({ backgroundColor: "#fff568" }, "fast")	  .animate({ backgroundColor: "#ffffff" }, "slow")	  .addClass("spam")	  return false;	});

	$(".pane .btn-approve").click(function(){	  $(this).parents(".pane").animate({ backgroundColor: "#dafda5" }, "fast")	  .animate({ backgroundColor: "#ffffff" }, "slow")	  .removeClass("spam")	  return false;	});

	$(".pane .btn-spam").click(function(){	  $(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")	  .animate({ opacity: "hide" }, "slow")	  return false;	});

});</code></pre>
<h3><em>9.</em> 轮换图片展栏</h3>
<p>如果你有一个项目需要显示多个图片，并且你不希望链向另一个页面，那么你可以在当前面加载目标链接的JPG<em>(view <a href="http://www.webdesignerwall.com/demo/jquery/img-replacement.html">demo</a>)</em></p>
<p><a title="sample8 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2577156548/"><img src="http://farm4.static.flickr.com/3265/2577156548_a645e65a07_o.jpg" alt="sample8" width="480" height="400" /></a></p>
<p>首先，添加一个&lt;em&gt;到H2标签。</p>
<p>当&lt;p&gt;内的元素被点击：<br />
-  以可视的形式显示<code>href</code>属性的&#8221;largePath&#8221;路径<br />
- 以可视的形式显示<code>title</code> 属性的&#8221;largeAlt&#8221;<br />
- 代换&lt;img  id=&#8221;largeImg&#8221;&gt;的<code>scr</code>属性内可视的&#8221;largePath&#8221;路径，并代换<code>alt</code>属性内可视的&#8221;largeAlt&#8221;<br />
- 设置<code>em</code>内的内容(<code>h2内</code>) 为可视的largeAlt</p>
<pre><code>$(document).ready(function(){

	$("h2").append('&lt;em&gt;&lt;/em&gt;')

	$(".thumbs a").click(function(){

	  var largePath = $(this).attr("href");	  var largeAlt = $(this).attr("title");

	  $("#largeImg").attr({ src: largePath, alt: largeAlt });

	  $("h2 em").html(" (" + largeAlt + ")"); return false;	});

});</code></pre>
<h3><em>10.</em> 个性化不同的链接样式</h3>
<p>在现代化的浏览器中，个性化不同的链接是非常容易的事，比如想让.pdf文件显示特殊的样式，你只需要添加上简单的CSS规则：<code>a[href  $='.pdf'] { ... }</code>就可以实现，但不幸的是IE6并不支持这个。如果想实现这个，你可以利用jQuery <em>(view <a href="http://www.webdesignerwall.com/demo/jquery/link-types.html">demo</a>)</em></p>
<p><a title="sample9 by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2576326459/"><img src="http://farm4.static.flickr.com/3265/2576326459_5198deb9a6_o.gif" alt="sample9" width="426" height="210" /></a></p>
<p>前三行代码必需是连续的，它只是一个<code>&lt;a&gt;</code>的href属性中的一个CSS class。</p>
<p>第二部分将会获取所有href中没有&#8221;http://www.webdesignerwall.com&#8221; 和/或没有&#8221;#&#8221;的&lt;  a&gt;元素，并添加&#8221;external&#8221; class和target= &#8220;_blank&#8221;。</p>
<pre><code>$(document).ready(function(){

	$("a[@href$=pdf]").addClass("pdf");

	$("a[@href$=zip]").addClass("zip");

	$("a[@href$=psd]").addClass("psd");

	$("a:not([@href*=http://www.webdesignerwall.com])").not("[href^=#]")	  .addClass("external")	  .attr({ target: "_blank" });

});</code>
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/486/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10个最实用的JQUERY学习实例资源</title>
		<link>http://www.52ebuy.com/archives/484</link>
		<comments>http://www.52ebuy.com/archives/484#comments</comments>
		<pubDate>Fri, 12 Feb 2010 01:54:16 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[zoom]]></category>
		<category><![CDATA[实例]]></category>
		<category><![CDATA[导航]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=484</guid>
		<description><![CDATA[虽然说是最好jQuery教程，不过个人觉得，更应该说是最实用的教程，推荐初学者阅读和练习。
jQuery可以说已经是无所不在。不过，对于不懂JS的人来说，运用起来还是相当有难度的，所以，像PS... ]]></description>
			<content:encoded><![CDATA[<p>虽然说是最好jQuery教程，不过个人觉得，更应该说是最实用的教程，推荐初学者阅读和练习。</p>
<div>jQuery可以说已经是无所不在。不过，对于不懂JS的人来说，运用起来还是相当有难度的，所以，像PS一样，都会从网上找一些教程，手把手教，一点一点学。比如上次说到的<a href="http://www.happinesz.cn/archives/442/"><span style="color: #cc3300;">写给设计人的10个jQuery特效</span></a>都是手把手教的。今天这个jQuery教程也不例外，除了第一个是预览页的，其他都是手把手教的。</div>
<p>1. <a href="http://nettuts.s3.amazonaws.com/009_jQueryMenu/sm/result/index.html"><span style="color: #cc3300;">标签式导航</span></a></p>
<p><a title="2848373300_0249d4bb4b_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888197851/"><span style="color: #cc3300;"><img onclick="javascript:window.open(this.src);" src="http://farm4.static.flickr.com/3079/2888197851_6ef91bdec0.jpg" border="0" alt="2848373300_0249d4bb4b_o.jpg" width="500" height="69" /></span></a></p>
<p>2. <a href="http://gmarwaha.com/blog/?cat=8"><span style="color: #cc3300;">平滑移动导航</span></a></p>
<p><a title="2848373306_c9a24450bd_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888201367/"><span style="color: #cc3300;"><img onclick="javascript:window.open(this.src);" src="http://farm4.static.flickr.com/3086/2888201367_3907ca0250.jpg" border="0" alt="2848373306_c9a24450bd_o.jpg" width="500" height="69" /></span></a></p>
<p><span id="more-484"></span>3. <a href="http://www.kriesi.at/wp-content/extra_data/kwicks_tutorial/kwicks_final.html"><span style="color: #cc3300;">滑动导航</span></a></p>
<p><a title="2848373310_ab4949c48d_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888201463/"><span style="color: #cc3300;"><img onclick="javascript:window.open(this.src);" src="http://farm4.static.flickr.com/3187/2888201463_4b0d46de4e.jpg" border="0" alt="2848373310_ab4949c48d_o.jpg" width="500" height="69" /></span></a></p>
<p>4. <a href="http://webdev.stephband.info/parallax.html"><span style="color: #cc3300;">jParallax</span></a> (很酷的效果，眼人的视角一样)</p>
<p><a title="2848373314_5989771696_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888200801/"><img src="http://farm4.static.flickr.com/3075/2888200801_8095e11fb3_o.jpg" border="0" alt="2848373314_5989771696_o.jpg" width="500" height="69" /></a></p>
<p>5. <a href="http://orderedlist.com/demos/fancy-zoom-jquery/"><span style="color: #cc3300;">Fancy-Zoom</span></a>(放大效果，很漂亮)</p>
<p><a title="2848373318_954e120c48_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888253173/"><img src="http://farm4.static.flickr.com/3146/2888253173_d7f4de400f.jpg" border="0" alt="2848373318_954e120c48_o.jpg" width="500" height="69" /></a></p>
<p>6. <a href="http://www.mind-projects.it/blog/jqzoom_v10"><span style="color: #cc3300;">jQzoom</span></a> (局站放大，厉害)</p>
<p><a title="2848373322_efed88744f_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888200901/"><img src="http://farm4.static.flickr.com/3060/2888200901_cb2de7f1ee.jpg" border="0" alt="2848373322_efed88744f_o.jpg" width="500" height="69" /></a></p>
<p>7. <a href="http://nettuts.com/javascript-ajax/use-the-jquery-ui-to-control-the-size-of-your-text/"><span style="color: #cc3300;">Text-Zoom</span></a>(文字放大)</p>
<p><a title="2848378268_14e4ece156_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2889034290/"><img src="http://farm4.static.flickr.com/3027/2889034290_bd6a021bea.jpg" border="0" alt="2848378268_14e4ece156_o.jpg" width="500" height="69" /></a></p>
<p>8. <a href="http://www.jankoatwarpspeed.com/examples/ContextHighlighting/"><span style="color: #cc3300;">高亮背景</span></a></p>
<p><a title="2848378274_69d3b48f04_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888201049/"><span style="color: #cc3300;"><img onclick="javascript:window.open(this.src);" src="http://farm4.static.flickr.com/3280/2888201049_2a696454a8.jpg" border="0" alt="2848378274_69d3b48f04_o.jpg" width="500" height="69" /></span></a></p>
<p>9. <a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/"><span style="color: #cc3300;">jQeury 图表</span></a></p>
<p><a title="2848378276_82c7eae81a_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888201135/"><span style="color: #cc3300;"><img onclick="javascript:window.open(this.src);" src="http://farm4.static.flickr.com/3219/2888201135_402b37d806.jpg" border="0" alt="2848378276_82c7eae81a_o.jpg" width="500" height="69" /></span></a></p>
<p>10. <a href="http://www.webdesignerwall.com/tutorials/css-decorative-gallery/"><span style="color: #cc3300;">可作装饰展栏</span></a></p>
<p><a title="2848378280_bbc1bd271a_o.jpg by webflickr, on Flickr" href="http://www.flickr.com/photos/webflickr/2888201245/"><img src="http://farm4.static.flickr.com/3146/2888201245_a8df6ae2a2.jpg" border="0" alt="2848378280_bbc1bd271a_o.jpg" width="500" height="69" /></a></p>
<p>﻿</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/484/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery+CSS实现多级下拉菜单</title>
		<link>http://www.52ebuy.com/archives/282</link>
		<comments>http://www.52ebuy.com/archives/282#comments</comments>
		<pubDate>Wed, 06 Jan 2010 15:45:56 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[前端脚本]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[多级下拉菜单]]></category>

		<guid isPermaLink="false">http://www.52ebuy.com/?p=282</guid>
		<description><![CDATA[
随着计算机网络、通信技术的迅速发展，特别是Internet的发展应用，使人们的行为方式受 到巨大的冲击及影响。电子商务作为一种崭新的商务运作方式，带来了一次新的产业革命，这场革命的... ]]></description>
			<content:encoded><![CDATA[<div>
<p>随着计算机网络、通信技术的迅速发展，特别是Internet的发展应用，使人们的行为方式受 到巨大的冲击及影响。电子商务作为一种崭新的商务运作方式，带来了一次新的产业革命，这场革命的最终结果将人类带入了信息经济时代。电子商务网站出现如雨 后春笋，但中国电子商务的发展较之发达国家尚处于起步阶段，</p>
<p>今天电子商务网站我们随处可见，如淘宝、拍拍、百度有啊……。电子商务在发展，网站技术也在不段的更新。由于电子商务网站的产品和种类的不段增加，以往的一级下拉菜单已经远不能满足现有电子商务网站发展了，多级下拉菜单是今后电子商务网站的新趋势。</p>
<p>一个好的菜单，能为电子商务网站增色不少。下面我就用<a href="http://www.56mp.cn/search.asp?q=jQuery%2BCSS" target="_blank">jQuery+CSS</a>来制做一款多级的下拉菜单。</p>
<p><img title="jQuery+CSS实现多级下拉菜单" src="http://www.56mp.cn/upload/demo.jpg" alt="jQuery+CSS实现多级下拉菜单" /></p>
<p><span id="more-282"></span>jQuery+CSS实现多级下拉菜单</p>
<p>演示地址：<a href="http://www.56mp.cn/upload/mega-dropdowns/" target="_blank">http://www.56mp.cn/upload/mega-dropdowns/</a></p>
<p><strong> HTML部分：</strong></p>
<p>就像我的所有导航教程一样，首先创建一个无序列表。</p>
<blockquote><p>&lt;ul id=&#8221;topnav&#8221;&gt;<br />
&lt;li&gt;&lt;a href=&#8221;<a href="http://www.56mp.cn/">http://www.56mp.cn</a>&#8220;&gt;Home&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;<a href="http://www.56mp.cn/">http://www.56mp.cn</a>&#8220;&gt;Products&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;<a href="http://www.56mp.cn/">http://www.56mp.cn</a>&#8220;&gt;Sale&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;<a href="http://www.56mp.cn/">http://www.56mp.cn</a>&#8220;&gt;Community&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;<a href="http://www.56mp.cn/">http://www.56mp.cn</a>&#8220;&gt;Store Locator&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p></blockquote>
<p><strong>CSS部分：</strong></p>
<p>由于我们的下拉菜单将使用绝对定位，所以一定要添加一个相对定位的列表项。</p>
<blockquote><p>ul#topnav {<br />
margin: 0; padding: 0;<br />
float:left;<br />
width: 100%;<br />
list-style: none;<br />
font-size: 1.1em;<br />
}<br />
ul#topnav li {<br />
float: left;<br />
margin: 0; padding: 0;<br />
position: relative;<br />
}<br />
ul#topnav li a {<br />
float: left;<br />
text-indent: -9999px;<br />
height: 44px;<br />
}<br />
ul#topnav li:hover a, ul#topnav li a:hover { background-position: left bottom; }<br />
ul#topnav a.home {<br />
background: url(nav_home.png) no-repeat;<br />
width: 78px;<br />
}<br />
ul#topnav a.products {<br />
background: url(nav_products.png) no-repeat;<br />
width: 117px;<br />
}<br />
ul#topnav a.sale {<br />
background: url(nav_sale.png) no-repeat;<br />
width: 124px;<br />
}<br />
ul#topnav a.community {<br />
background: url(nav_community.png) no-repeat;<br />
width: 124px;<br />
}<br />
ul#topnav a.store {<br />
background: url(nav_store.png) no-repeat;<br />
width: 141px;<br />
}</p></blockquote>
<p><strong>子菜单HTML：</strong></p>
<p>添加好子菜单后，每个无序列表要嵌套相应的类值。</p>
<p><img title="无序列表嵌套相应的类值" src="http://www.56mp.cn/upload/subnav_1.jpg" alt="无序列表嵌套相应的类值" /></p>
<p>无序列表嵌套相应的类值</p>
<blockquote><p><span style="color: #999999;">&lt;ul id=&#8221;topnav&#8221;&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Home&lt;/a&gt;&lt;/li&gt;</span><br />
&lt;li&gt;<br />
&lt;a href=&#8221;#&#8221;&gt;Products&lt;/a&gt;<br />
<strong>&lt;div&gt;</strong><br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;h2&gt;&lt;a href=&#8221;#&#8221;&gt;Desktop&lt;/a&gt;&lt;/h2&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;h2&gt;&lt;a href=&#8221;#&#8221;&gt;Laptop&lt;/a&gt;&lt;/h2&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;h2&gt;&lt;a href=&#8221;#&#8221;&gt;Accessories&lt;/a&gt;&lt;/h2&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;h2&gt;&lt;a href=&#8221;#&#8221;&gt;Accessories&lt;/a&gt;&lt;/h2&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Navigation Link&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
<strong>&lt;/div&gt;</strong><br />
&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Sale&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Community&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Store Locator&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p></blockquote>
<p><strong>子菜单CSS:</strong></p>
<blockquote><p>ul#topnav li .sub {<br />
position: absolute;<br />
top: 44px; left: 0;<br />
background: #344c00 url(sub_bg.png) repeat-x;<br />
padding: 20px 20px 20px;<br />
float: left;<br />
-moz-border-radius-bottomright: 5px;<br />
-khtml-border-radius-bottomright: 5px;<br />
-webkit-border-bottom-right-radius: 5px;<br />
-moz-border-radius-bottomleft: 5px;<br />
-khtml-border-radius-bottomleft: 5px;<br />
-webkit-border-bottom-left-radius: 5px;<br />
display: none;<br />
}<br />
ul#topnav li .row {<br />
clear: both;<br />
float: left;<br />
width: 100%;<br />
margin-bottom: 10px;<br />
}<br />
ul#topnav li .sub ul{<br />
list-style: none;<br />
margin: 0; padding: 0;<br />
width: 150px;<br />
float: left;<br />
}<br />
ul#topnav .sub ul li {<br />
width: 100%;<br />
color: #fff;<br />
}<br />
ul#topnav .sub ul li h2 {<br />
padding: 0;  margin: 0;<br />
font-size: 1.3em;<br />
font-weight: normal;<br />
}<br />
ul#topnav .sub ul li h2 a {<br />
padding: 5px 0;<br />
background-image: none;<br />
color: #e8e000;<br />
}<br />
ul#topnav .sub ul li a {<br />
float: none;<br />
text-indent: 0;<br />
height: auto;<br />
background: url(navlist_arrow.png) no-repeat 5px 12px;<br />
padding: 7px 5px 7px 15px;<br />
display: block;<br />
text-decoration: none;<br />
color: #fff;<br />
}<br />
ul#topnav .sub ul li a:hover {<br />
color: #ddd;<br />
background-position: 5px 12px ;<br />
}</p></blockquote>
<p><strong>用jQuery设置鼠标悬停效果</strong></p>
<p>对于那些谁不熟悉jQuery的，你可以看看他们的网站。</p>
<p>调用jQuery的文件</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221;src=&#8221;<a href="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js%22%3E%3C/script">http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js&#8221;&gt;&lt;/script</a>&gt;</p></blockquote>
<p><strong>设置自定义配置和触发功能</strong></p>
<blockquote><p>//Set custom configurations<br />
var config = {<br />
sensitivity: 2,<br />
interval: 100,<br />
over: megaHoverOver,<br />
timeout: 500,<br />
out: megaHoverOut<br />
};</p>
<p>$(&#8220;ul#topnav li .sub&#8221;).css({&#8216;opacity&#8217;:'0&#8242;});<br />
$(&#8220;ul#topnav li&#8221;).hoverIntent(config);</p></blockquote>
<p>文章出自逸诚科技：<a href="http://www.56mp.cn/">http://www.56mp.cn</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.52ebuy.com/archives/282/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
