jQuery入门指南教程
这个指南是一
个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个最简单的Hello World的
例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。 这个指南包括了很多代码,
你可以复制它们,并试着修改它们,看看产生的效果。
内容提要
安装jquery
Hello
jQuery
Find me:使用选择器和事件
Rate me:使用AJAX
Animate me(让我生动起来):使用
FX
Sort me(将我有序化):使用tablesorter插件(表格排序)
Plug me:制作您自己的插件
Next steps(下一步)
安装
一开始,我们需要一个jQuery的库,最新的下载可以到这里找到。
这个指南提供一个基本包含实例的包供下载.
下载:jQuery Starterkit
(译者Keel注:
一定要下载这个包,光看文章不实践肯定是不行的。)
下载后解压缩,然后用你最喜欢的文本
编辑器打开starterkit.html和custom.js这两个文件。(译者Keel注:这两个就是例子文件,所有的例子都
用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开)
现在,我们就已经做好了一切准备来进行这个著名的”Hello world”例子.
本章的相关链
接:
Starterkit
jQuery Downloads
Hello jQuery
在做所有事情之前,我们要让jQuery
读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理
HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:
$(document).ready
(function() {
// do stuff when DOM is ready
});放一个简单的alert事件在需要等
DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个
alert.
$(document).ready(function() {
$(“a”).click(function() {
alert(“Hello world!”);
});
});这样在你点击页面的一个链接时都会触发这个”Hello
world”的提示。
(译者Keel注:请照此代码修改custom.js并保存,然后用浏览器打开
starterkit.html观察效果。)
让我们看一下这些修改是什么含义。$(“a”) 是一个jQuery选择器
(selector),在这里,它选择所有的a标签(译者Keel注:即),$号是 jQuery “类”(jQuery
“class”)的一个别称,因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个
jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发
时执行了它所提供的alert方法.
这里有一个拟行相似功能的代码:
onclick="alert('Hello world')">Link
onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开
的目的,就像我们使用CSS追求的一样.
下面我们会更多地了解到选择器与事件.
本章的
相关链接:
jQuery Base
jQuery Expressions
jQuery Basic Events
Find me:使用选
择器和事件
jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形
成一个字符串来传送到jQuery的构造器(如:$(“div > ul a”));第二种是用jQuery对象的几个
methods(方法)。这两种方式还可以联合起来混合使用。
为了测试一下这些选择器,我们来试着
在我们starterkit.html中选择并修改第一个ordered list.
一开始,我们需要选择这个list本
身,这个list有一个ID叫“orderedlist”,通常的javascript写法是document.getElementById
(“orderedlist”).在jQuery中,我们这样做:
$(document).ready(function() {
$(“#orderedlist”).addClass(“red”);
});这里将starterkit中的一个CSS样式red附加到了
orderedlist上(译者Keel注:参考测试包中的css目录下的core.css,其中定义了red样式)。因此,在你
刷新了starterkit.html后,你将会看到第一个有序列表(ordered list )背景色变成了红色,而第二个
有序列表没有变化.
现在,让我们添加一些新的样式到list的子节
点.
$(document).ready(function() {
$(“#orderedlist > li”).addClass
(“blue”);
});这样,所有orderedlist中的li都附加了样式”blue”。
现在我们再做个复杂一
点的,当把鼠标放在li对象上面和移开时进行样式切换,但只在list的最后一个element上生效。
$(document).ready(function() {
$(“#orderedlist li:last”).hover(function()
{
$(this).addClass(“green”);
}, function() {
$(this).removeClass(“green”);
});
});还有大量的类似的CSS和XPath例子,更多的例
子和列表可以在这里找到。(译者Keel注:入门看此文,修行在个人,要想在入门之后懂更多,所以这
段话的几个链接迟早是要必看的!不会又要翻译吧…^_^!)
每一个onXXX事件都有效,如
onclick,onchange,onsubmit等,都有jQuery等价表示方法(译者Keel注:jQuery不喜欢onXXX,所以都
改成了XXX,去掉了on)。其他的一些事件,如ready和hover,也提供了相应的方法。
你可以在
Visual jQuery找到全部的事件列表,在Events栏目下.
用这些选择器和事件你已经可以做很多
的事情了,但这里有一个更强的好东东!
$(document).ready(function() {
$(“#orderedlist”).find(“li”).each(function(i) {
$(this).html( $(this).html
() + ” BAM! ” + i );
});
});find() 让你在已经选择的element中作条件查找,因此
$(“#orderedlist).find(“li”) 就像 $(“#orderedlist li”)一样。each()方法迭代了所有的li,并可以
在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子
中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本。(译者Keel注:
从这个例子可以看到.html()方法是获取对象的html代码,而.html(‘xxx’)是设置’xxx’为对象的
html代码)
另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法,想像一个
在你用AJAX方式成功提交后的reset:
$(document).ready(function() {
// use this
to reset a single form
$(“#reset”).click(function() {
$(“#form”)
[0].reset();
});
});(译者Keel注:这里作者将form的id也写成了form,源文件有