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实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
Nov 19 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
js+canvas实现动态吃豆人效果
Mar 22 Javascript
Webpack性能优化 DLL 用法详解
Aug 10 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
微信用户访问小程序的登录过程详解
Sep 20 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 Javascript
微信小程序 WeUI扩展组件库的入门教程
Apr 21 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
php类的扩展和继承用法实例
2015/06/20 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
在vue中获取wangeditor的html和text的操作
2020/10/23 Javascript
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python中while和for的区别总结
2019/06/28 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
Django values()和value_list()的使用
2020/03/31 Python
python 检测图片是否有马赛克
2020/12/01 Python
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
P/Invoke是什么
2015/07/31 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
设计部经理的岗位职责
2013/11/16 职场文书
中学教师管理制度
2014/01/14 职场文书
车间机修工岗位职责
2014/02/28 职场文书
建设投标担保书
2014/05/13 职场文书
初一新生军训方案
2014/05/22 职场文书
安全宣传标语口号
2014/06/06 职场文书
2014年部门工作总结
2014/11/12 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
教师节大会主持词
2015/07/06 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
JS函数式编程实现XDM一
2022/06/16 Javascript