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 相关文章推荐
半角全角相互转换的js函数
Oct 16 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
js函数返回多个返回值的示例代码
Nov 05 Javascript
zTree插件之多选下拉菜单实例代码
Nov 06 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
javascript中数组array及string的方法总结
Nov 28 Javascript
js获得当前系统日期时间的方法
May 06 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
JS多个表单数据提交下的serialize()应用实例分析
Aug 27 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
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
PHP中的类-什么叫类
2006/11/20 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
原生js实现日历效果
2020/03/02 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python列表推导式操作解析
2019/11/26 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
《长城和运河》教学反思
2014/04/14 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
年终工作总结范文2014
2014/11/27 职场文书
教师求职自荐信
2015/03/26 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL