<?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; JavaScript</title>
	<atom:link href="http://www.astesys.com/category/softdev/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.astesys.com</link>
	<description>专业的软件开发知识库</description>
	<lastBuildDate>Wed, 26 May 2010 02:22:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.astesys.com/wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>jquery是什么技术？</title>
		<link>http://www.astesys.com/softdev/javascript/625.html</link>
		<comments>http://www.astesys.com/softdev/javascript/625.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:20:20 +0000</pubDate>
		<dc:creator>xums</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery是什么]]></category>

		<guid isPermaLink="false">http://www.astesys.com/softdev/javascript/625.html</guid>
		<description><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby 罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。


Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/website/webapp/594.html' rel='bookmark' title='Permanent Link: CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)'>CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)</a></li>
<li><a href='http://www.astesys.com/hot/605.html' rel='bookmark' title='Permanent Link: 是历史的倒退还是？CNNIC公告 域名注册将不对个人开放'>是历史的倒退还是？CNNIC公告 域名注册将不对个人开放</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
<p>&#160; Jquery是继prototype之后又一个优秀的Javascrīpt框架。有人使用这样的一比喻来比较prototype和jquery：prototype就像Java，而jquery就像ruby.实际上我比较喜欢java（少接触Ruby 罢了）但是jquery的简单的实用的确有相当大的吸引力啊！在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得，其实这些心得，在jquery的文档上面也可能有讲，不过还是记下来，以备忘罢。</p>
<p><strong>一，找到你了！</strong>     <br />还记得$()这个东西吧？prototype还是DWR都使用了这个函数代替document.getElementById()。没错，jquery也跟风了。为达到document.getElementById()的目的，jquery是这样写的：     <br />代码</p>
<p>var someElement = $(&quot;#myId&quot;);&#160;&#160; </p>
<p>看起来比其他两个框架的要多了一个#，好，看看下面的用法：    <br />代码</p>
<p>$(&quot;div p&quot;);(1)&#160;&#160;&#160; <br />$(&quot;div.container&quot;)(2)&#160;&#160;&#160; <br />$(&quot;div #msg&quot;);(3)&#160;&#160;&#160; <br />$(&quot;table a&quot;,context);(4)&#160; </p>
<p>在prototype里看过这样的写法吗？第一行代码得到所有&lt;div&gt;标签下的&lt;p&gt;元素。第二行代码得到class 为container的&lt;div&gt;元素,第三行代码得到&lt;div&gt;标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。    <br />如果你熟悉CSS，Xpath，你会觉得这些写法很眼熟！对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。     <br /><strong>二，Jquery对象？</strong>     <br />jquery提供了很多便利的函数，如each(fn)，但是使用这些函数的前提是：你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单，通过下面一些方式（只是一部分）：     <br />代码</p>
<p>var a = $(&quot;#cid&quot;);(1)&#160;&#160;&#160; <br />var b = $(&quot;&lt;p&gt;hello&lt;/p&gt;&quot;);(2)&#160;&#160;&#160; <br />var c = document.createElement(&quot;table&quot;); var tb = $(c);&#160;&#160; </p>
<p><strong>三，代替body标签的onload</strong>     <br />这个惯例，也许是除了$()之外，用得最多的地方了。下面一段代码：     <br />代码</p>
<p>$(document).ready(function(){&#160;&#160;&#160; <br />&#160;&#160; alert(&quot;hello&quot;);&#160;&#160;&#160; <br />});(1)&#160;&#160;&#160; <br />&lt;body onload=&quot;alert(&#8216;hello&#8217;);&quot;&gt;（2）&#160; </p>
<p>上面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作，即$(document).ready (fn)可以在一个页面中重复出现，而不会冲突。基本上Jqeury的很多plugin都是利用这个特性，正因为这个特性，多个plugin共同使用起来，在初始化时不会发生冲突。    <br />不管怎么说，这个惯例可以分离javascrīpt与HTML。推荐使用。     <br /><strong>四，事件机制</strong>     <br />我大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = &quot;fn()&quot;,使用jquery可以使javascrīpt代码与html代码分离，保持HTML的清洁，还可以很轻松地绑定事件，甚至你可以不知道“事件”这个名词。     <br />代码</p>
<p>$(document).ready(function(){&#160;&#160;&#160; <br />&#160;&#160; $(&quot;#clear&quot;).click(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160; alert(&quot;i am about to clear the table&quot;);&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; });&#160;&#160;&#160; <br />&#160;&#160; $(&quot;form[0]&quot;).submit(validate);&#160;&#160;&#160; <br />});&#160;&#160;&#160; <br />function validate(){&#160;&#160;&#160; <br />&#160;&#160; //do some form validation&#160;&#160;&#160; <br />}</p>
<p><strong>五，同一函数实现set&amp;get</strong>     <br />代码</p>
<p>$(&quot;#msg&quot;).html();&#160;&#160;&#160; <br />$(&quot;#msg&quot;).html(&quot;hello&quot;);&#160;&#160; </p>
<p>上面两行代码，调用了同样的函数。但结果却差别很大。    <br />第一行是返回指定元素的HTML值，第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性。     <br /><strong>六，ajax</strong>     <br />这是一个ajax横行的时代。多少人，了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常     <br />代码</p>
<p>$.get(&quot;search.do&quot;,{id:1},rend);&#160;&#160;&#160; <br />function rend(xml){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160; alert(xml);&#160;&#160;&#160; <br />} (1)&#160;&#160;&#160; <br />$.post(&quot;search.do&quot;,{id:1},rend);&#160;&#160;&#160; <br />function rend(xml){&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160; alert(xml);&#160;&#160;&#160; <br />} (2)&#160;&#160;&#160; <br />$(&quot;#msg&quot;).ajaxStart(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160; this.html(&quot;正在加载。。。。&quot;);&#160;&#160;&#160; <br />});(3)&#160;&#160;&#160; <br />$(&quot;#msg&quot;).ajaxSuccess(function(){&#160;&#160;&#160; <br />&#160;&#160;&#160; this.html(&quot;加载完成！&quot;);&#160;&#160;&#160; <br />});(4)&#160;&#160; </p>
<p>这些都是较常用的方法，get和post用法一样。第一个参数是异步请求的url，第二个为参数，第三个回调方法。    <br />3，4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然，jquery的AJAX相关的函数不仅是这些，有兴趣可以去研究再多。     <br /><strong>七，渐入淡出</strong>     <br />代码</p>
<p>$(&quot;#msg&quot;).fadeIn(&quot;fast&quot;);&#160;&#160;&#160; <br />$(&quot;#msg&quot;).fadeOut(&quot;slow&quot;);&#160;&#160; </p>
<p>没错，上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条，用jquery就那么简单。两个函数接受的参数除了快慢等，还可以接收整型，作为渐入或淡出的完成时间，单位为MS。    <br /><strong>八，plugin</strong>     <br />这也是一个插件的时代。     <br />jquery插件给我的感觉清一色的清洁，简单。如Jtip，要使用它的功能，只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好，很精彩的插件。     <br />写得很烂。可能大家看不出jquery的好处。嗯，光听是没用的，试用一下吧。你会发觉很有趣。     <br />暂时告一段落吧。待有新的发现再来分享。     <br /><strong>加一些Jquery的资源：</strong>     <br />http://www.visualjquery.com/index.xml 很好的API查询站点     <br />http://jquery.com/demo/thickbox/ 知道lightBox吧，看看Jquery是怎样实现相同的东西     <br />http://www.codylindley.com/blogstuff/js/jtip/ Jtip，实用的提示工具     <br />http://jquery.com/plugins/ 很多牛的插件。     <br />http://15daysofjquery.com/jquery 的15天教程</p>


<p>Related posts:<ol><li><a href='http://www.astesys.com/hot/283.html' rel='bookmark' title='Permanent Link: extJS中tabPanel的实现详解'>extJS中tabPanel的实现详解</a></li>
<li><a href='http://www.astesys.com/website/webapp/594.html' rel='bookmark' title='Permanent Link: CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)'>CSS对IE7，IE6，FireFox和其它不同浏览器的控制(转)</a></li>
<li><a href='http://www.astesys.com/hot/605.html' rel='bookmark' title='Permanent Link: 是历史的倒退还是？CNNIC公告 域名注册将不对个人开放'>是历史的倒退还是？CNNIC公告 域名注册将不对个人开放</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.astesys.com/softdev/javascript/625.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
