jQuery 入门级学习笔记及源码


Posted in Javascript onJanuary 22, 2010

jQuery真的很好,有些效果甚至让我尖叫。而各种插件能实现你喜欢的效果,这种方式为jQuery的流行奠定了基础,就像那个crocs鞋子似的。jQuery还有一个优点是达到了将行为与结构分开的目的。

内容概要:
1. 安装
2. Hello jQuery
3. Find me:使用选择器和事件
4. Rate me:使用AJAX
5. Animate me(让我生动起来):使用FX (jQuery FX,jQuery UI后的第二个子库,强调动画效果而非UI的外观模块,包括对象的消失、出现;颜色、大小、位置变换。)
6. Sort me(将我有序化):使用tablesorter插件(表格排序)

custom.js

$(document).ready(function() { //## 简写方法:(document).ready可以去掉 
## 让所有“<a>”在点击时填出“hello world” 
$("a").click(function() { 
alert("Hello world"); 
}); ## id是“orderedlist”增加class名为“red”,在core.css有定义 
$("#orderedlist").addClass("red"); 
## id是“orderedlist”下的最后一个li,鼠标经过时会变色 
$("#orderedlist li:last").hover( 
function() { 
$(this).addClass("green"); 
}, 
function() { 
$(this).removeClass("green"); 
} 
); 
## find() 让你在已经选择的element中作条件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一样。each()方法迭代了所有的li,并可以在此基础上作更多的处理。 
## 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本。 
$("#orderedlist").find("li").each(function(i) { 
$(this).html($(this).html() + " BAM! " + i); 
} 
); 
## 清空所有的input值 
$("#reset").click(function() { 
$("input").attr("value", ""); 
}); 
## 这个代码选择了所有的li元素,然后去除了有ul子元素的li元素。刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外。 
## 请注意体会方便之极的css()方法,并再次提醒请务必实际测试观察效果,比方说换个CSS样式呢?再加一个CSS样式呢? 
$("li").not("[ul]").css("border", "1px solid black").css("color", "red"); 
## 这个代码给所有带有name属性的链接加了一个背景色。[注:在jQuery1.2及以上版本中,@符号应该去除] 
$("a[@name]").background("#eee"); 
## 你可能需要选择一个有特点href属性的链接,这在不同的浏览器下对href的理解可能会不一致,所以我们的部分匹配("*=")的方式来代替完全匹配("=") 
$("a[@href*=bot]").click(function() { 
alert("hello world 2"); 
}); 
## 这里我们用了一些链式表达法来减少代码量,而且看上去更直观更容易理解。像'#faq' 只选择了一次,利用end()方法,第一次find()方法会结束(undone), 
## 所以我们可以接着在后面继续find('dt'),而不需要再写$('#faq').find('dt')。 
## 在点击事件中的,我们用 $(this).next() 来找到dt下面紧接的一个dd元素,这让我们可以快速地选择在被点击问题下面的答案。 
$('#faq').find('dd').hide().end().find('dt').click(function() { 
var answer = $(this).next(); 
if (answer.is(':visible')) { 
answer.slideUp(); 
} else { 
answer.slideDown(); 
} 
}); 
## 除了选择同级别的元素外,你也可以选择父级的元素。可能你想在用户鼠标移到文章某段的某个链接时,它的父级元素--也就是文章的这一段突出显示,试试这个: 
$("a").hover(function() { 
$(this).parents("p").addClass("highlight"); 
}, function() { 
$(this).parents("p").removeClass("highlight"); 
}); 
## AJAX第一次尝试。首先我们需要一些服务器端代码,这个例子中用到了一个ASPX文件,读取rating参数然后返回rating总次数和平均数。 
// generate markup 
var ratingMarkup = [" Please rate: "]; 
for (var i = 1; i <= 5; i++) { 
ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> "; //ratingMarkup是个数组 
} 
// add markup to container and applier click handlers to anchors 
$("#rating").append(ratingMarkup.join('')).find("a").click(function(e) { //用join方法返回一个将数组所有元素用指定符号连在一起的字符串 
e.preventDefault(); //该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。 
// send requests 
$.post("rate.aspx?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('')); 
}); 
}); 
## 一些动态的效果可以使用 show() 和 hide()来表现。伸缩效果。 
$("a").toggle(function() { //toggle双向开关 
$(".stuff").hide('slow'); 
}, function() { 
$(".stuff").show('fast'); 
}); 
## 可以与 animate()联合起来创建一些效果,如一个带渐显的滑动效果 
$("a").toggle(function() { 
$(".stuff").animate({ 
height: 'hide', 
opacity: 'hide' 
}, 'slow'); 
}, function() { 
$(".stuff").animate({ 
height: 'show', 
opacity: 'show' 
}, 'slow'); 
}); 
## 使用tablesorter插件(表格排序) 
## 几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的 
$("#large").tableSorter(); 
## 这个表格还可以加一些突出显示的效果,我们可以做这样一个隔行背景色(斑马线)效果 
$("#large").tableSorter({ 
stripingRowClass: ['odd', 'even'], // Class names for striping supplyed as a array. 
stripRowsOnStartUp: true // Strip rows on tableSorter init. 
}); 
});

jquery-starterkit.rar
Javascript 相关文章推荐
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
Jan 15 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
Apr 10 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
Vue模板语法中数据绑定的实例代码
May 17 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 Javascript
JQuery 确定css方框模型(盒模型Box Model)
Jan 22 #Javascript
Jquery实战_读书笔记2 选择器
Jan 22 #Javascript
Jquery实战_读书笔记1—选择jQuery
Jan 22 #Javascript
jquery last-child 列表最后一项的样式
Jan 22 #Javascript
javascript 拖放效果实现代码
Jan 22 #Javascript
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 #Javascript
javascript 获取url参数和script标签中获取url参数函数代码
Jan 22 #Javascript
You might like
桌面中心(四)数据显示
2006/10/09 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
preg_match_all使用心得分享
2014/01/31 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python迭代器和生成器定义与用法示例
2018/02/10 Python
解决python 输出是省略号的问题
2018/04/19 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
个人简历自我鉴定
2013/10/11 职场文书
信息管理专业推荐信
2013/10/29 职场文书
团员的自我评价
2013/12/01 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
农村葬礼主持词
2014/03/31 职场文书
努力学习演讲稿
2014/05/10 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
学习党章心得体会2016
2016/01/15 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
Spring实现内置监听器
2021/07/09 Java/Android