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 相关文章推荐
[原创]图片分页查看
Aug 28 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
JS代码放在head和body中的区别分析
Dec 01 Javascript
jQuery学习笔记之jQuery中的$
Jan 19 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
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 whois查询API制作方法
2011/06/23 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
Django的Modelforms用法简介
2019/07/27 Python
keras中的backend.clip用法
2020/05/22 Python
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
小学生开学感言
2014/02/28 职场文书
校企合作协议书
2014/04/16 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
老员工辞职信范文
2015/05/12 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers