jQuery 学习6 操纵元素显示效果的函数


Posted in Javascript onFebruary 07, 2010
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Collapsible List — Take 1</title> 
<link rel="stylesheet" type="text/css" href="../common.css"> 
<script type="text/javascript" 
src="../scripts/jquery-1.2.1.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$('li:has(ul)') 
.click(function(event){ 
if (this == event.target) { 
if ($(this).children().is(':hidden')) { 
$(this) 
.css('list-style-image','url(minus.gif)') 
.children().show(); 
} 
else { 
$(this) 
.css('list-style-image','url(plus.gif)') 
.children().hide(); 
} 
} 
return false; 
}) 
.css('cursor','pointer') 
.click(); 
$('li:not(:has(ul))').css({ 
cursor: 'default', 
'list-style-image':'none' 
}); 
}); 
</script> 
<style> 
fieldset { width: 320px } 
</style> 
</head> 
<body> 
<fieldset> 
<legend>Collapsible List — Take 1</legend> 
<ul> 
<li>Item 1</li> 
<li>Item 2</li> 
<li> 
Item 3 
<ul> 
<li>Item 3.1</li> 
<li> 
Item 3.2 
<ul> 
<li>Item 3.2.1</li> 
<li>Item 3.2.2</li> 
<li>Item 3.2.3</li> 
</ul> 
</li> 
<li>Item 3.3</li> 
</ul> 
</li> 
<li> 
Item 4 
<ul> 
<li>Item 4.1</li> 
<li> 
Item 4.2 
<ul> 
<li>Item 4.2.1</li> 
<li>Item 4.2.2</li> 
</ul> 
</li> 
</ul> 
</li> 
<li>Item 5</li> 
</ul> 
</fieldset> 
</body> 
</html>

上面实现列表的折叠已经很简单了,但jQuery提供了一个切换元素状态的函数toggle()。将上面红色字体的代码改为下面的代码,同样可以实现上述功能:
$(this).children().toggle();
$(this).css('list-style-image',
($(this).children().is(':hidden')) ?
'url(plus.gif)' : 'url(minus.gif)');
}
以上三个函数show()、hide()、toggle()在带参数的情况下可以实现元素逐渐的显示和隐藏
hide(speed,callback)
show(speed,callback)
toggle(speed,callback)
speed:可为数字或字符串,把效果的持续时间(可选)指定为毫秒数或预定义的字符串之一:slow、normal或fast。如果省略,就不产生动画并立即在显示屏上显示元素。
callback:回调函数(可选),在动画完成时调用。没有参数传递给这个函数,但函数上下文(this)被设置为以动画隐藏的元素。

动画效果的可折叠列表

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Collapsible List — Take 3</title> 
<link rel="stylesheet" type="text/css" href="../common.css"> 
<script type="text/javascript" 
src="../scripts/jquery-1.2.1.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$('li:has(ul)') 
.click(function(event){ 
if (this == event.target) { 
$(this).css('list-style-image', 
(!$(this).children().is(':hidden')) ? 
'url(plus.gif)' : 'url(minus.gif)'); 
$(this).children().toggle('slow'); 
} 
return false; 
}) 
.css({cursor:'pointer', 
'list-style-image':'url(plus.gif)'}) 
.children().hide(); 
$('li:not(:has(ul))').css({ 
cursor: 'default', 
'list-style-image':'none' 
}); 
}); 
</script> 
<style> 
fieldset { width: 320px } 
</style> 
</head> 
<body> 
<fieldset> 
<legend>Collapsible List — Take 3</legend> 
<ul> 
<li>Item 1</li> 
<li>Item 2</li> 
<li> 
Item 3 
<ul> 
<li>Item 3.1</li> 
<li> 
Item 3.2 
<ul> 
<li>Item 3.2.1</li> 
<li>Item 3.2.2</li> 
<li>Item 3.2.3</li> 
</ul> 
</li> 
<li>Item 3.3</li> 
</ul> 
</li> 
<li> 
Item 4 
<ul> 
<li>Item 4.1</li> 
<li> 
Item 4.2 
<ul> 
<li>Item 4.2.1</li> 
<li>Item 4.2.2</li> 
</ul> 
</li> 
</ul> 
</li> 
<li>Item 5</li> 
</ul> 
</fieldset> 
</body> 
</html>
Javascript 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
javascript Onunload与Onbeforeunload使用小结
Dec 31 Javascript
javascript下string.format函数补充
Aug 24 Javascript
用正则表达式替换图片地址img标签
Nov 22 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
angular2 NgModel模块的具体使用方法
Apr 10 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 Javascript
浅析 Vue 3.0 的组装式 API(一)
Aug 31 Javascript
jQuery学习5 jQuery事件模型
Feb 07 #Javascript
jQuery学习4 浏览器的事件模型
Feb 07 #Javascript
jQuery学习3:操作元素属性和特性
Feb 07 #Javascript
jQuery学习2 选择器的使用说明
Feb 07 #Javascript
jQuery ctrl+Enter shift+Enter实现代码
Feb 07 #Javascript
JQuery 获取和设置Select选项的代码
Feb 07 #Javascript
经典海量jQuery插件 大家可以收藏一下
Feb 07 #Javascript
You might like
追求程序速度,而不是编程的速度
2008/04/23 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
javascript 常用方法总结
2009/06/03 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
详解Python:面向对象编程
2019/04/10 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
python热力图实现简单方法
2021/01/29 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
护士自我鉴定范文
2013/10/06 职场文书
影视艺术学院毕业生自荐信
2013/11/13 职场文书
国际政治个人自荐信范文
2013/11/26 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
会计工作岗位职责
2015/02/03 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
毕业欢送会致辞
2015/07/29 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang