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 相关文章推荐
CSS鼠标响应事件经过、移动、点击示例介绍
Sep 04 Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
AngularJS中的拦截器实例详解
Apr 07 Javascript
vue嵌套路由与404重定向实现方法分析
May 04 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
PHP测试程序运行时间的类
2012/02/05 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
js中replace的用法总结
2013/12/27 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python之os操作方法(详解)
2017/06/15 Python
python绘制简单折线图代码示例
2017/12/19 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
物理力学求职信
2014/02/18 职场文书
大学校务公开实施方案
2014/03/31 职场文书
学习型班组申报材料
2014/05/31 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
2015高考寄语集锦
2015/02/27 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
oracle表分区的概念及操作
2021/04/24 Oracle
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技