JQuery toggle使用分析


Posted in Javascript onNovember 16, 2009

今天重点一个toggle(fn,fn,….)函数,主要是用来切换某个事件的轮换操作。
比如:对一个按钮的点击事件和一个DIV的背景,点击一次按钮,将DIV的背景显示为蓝色,点击第二次的时候要将DIV的
背景色改为黑色。
我们定义的HTML代码如下:
<body>
<input type="button" id="btnShow" value="Toggle"/>
<div id="DivToggle">此处显示 id "DivToggle" 的内容</div>
</body>
定义的最初的样式如下:

#DivToggle { 
height: 150px; 
width: 200px; 
margin: 50px; 
background-color: #6CC; 
}

在toggle(fn,fn,….);先明白一个toggle()的函数,主要是用来切换元素的显示状态。如果一个元素是显示的,那么调用.toggle()之后就变得隐藏了。

JQuery代码:

<script type="text/javascript"> 
$( 
function() { 
$("#btnShow").click(function(event) { 
$("#DivToggle").toggle(); 
}); 
} 
); 
</script>

点击按钮之后DIV隐藏,再次点击DIV显示,然后循环。

这里我们可以手动设置元素的显示和隐藏,显示:toggle(true);隐藏:toggle(false);

我们还可以为元素的隐藏和显示设置速度。

$("#DivToggle").toggle(600);

当然到这里我们可以想到我们经常在网页中碰到的将鼠标移上去显示出来,然后鼠标移开则隐藏掉的效果。

这里当然用到了一个hover(fnover,fnout)事件。我们只要将fnover,和fnout设置为以上的toggle(600)即可;

这里的fnover是鼠标移上去的事件函数, fnout是鼠标移开的事件函数。

我们将toggle(600)单独设置为一个函数来调用,这样看起来代表比较易读。

<script type="text/javascript"> 
$( function(event) { 
$("#btnShow").hover(OverOut, OverOut); 
function OverOut(event) { 
$("#DivToggle").toggle(600); 
} 
} 
); 
</script>

这样我们把鼠标移动到按钮上面,然后移开,就可以看到DivToggle的隐藏和显示的效果了。

为了演示toggle(fn,fn,…)是轮换操作的,我们使用上面的一个函数,然后再加一个使用btnShow的Click事件先隐藏显示DIV,然后该表DIV的样式。

显示隐藏的代码可以这样(事实上这段代码是有问题的,但是居然这样写也能实现要的效果):

<script type="text/javascript"> 
$( 
function(event) { 
function OverOut(event) { 
$("#DivToggle").toggle(600); 
} 
$("#DivToggle").toggle(function() { 
$("#btnShow").click(OverOut); 
}, function() { 
$("#btnShow").click(OverOut); 
}); 
} 
); 
</script>

回过头来看这段代码觉得很有问题,本身toggle(fn,fn,…)是用来给指定的元素加上Click事件,然后再对这个元素循环做toggle
里面的那些函数。突然感觉有点搅在那里了。像麻花一样。望牛牛能解释一下。
这样为了演示toggle的轮循函数的效果就没有办法,通过单击按钮,再改变Div的样式了。
改变DIV样式的代码这样:
<script type="text/javascript"> 
$( 
function(event) { 
function OverOut(event) { 
$("#DivToggle").toggle(600); 
} 
$("#DivToggle").toggle(function() { 
$(this).click(function() { $(this).css("background", "Blue"); }); 
}, function(event) { 
$(this).click(function() { $(this).css("background", "Green"); }); 
}); 
} 
); 
</script>

到这里我突然想到,要实现以上的效果,那就直接把事件加载到按钮上,也就是”btnShow”上面也就是先隐藏显示,然后改变DIV的样式。详细的代码如下:
<script type="text/javascript"> 
$( 
function(event) { function OverOut(event) { 
$("#DivToggle").toggle(600); 
} 
$("#btnShow").toggle( 
OverOut, OverOut, 
function() { $("#DivToggle").css({ "background": "Green" }); }, 
function() { $("#DivToggle").css({ "background": "Blue" }); } 
); 
} 
); 
</script>

这样能实现以上要的效果,就是先隐藏,再显示,再改变样式。
Javascript 相关文章推荐
javascript 密码强弱度检测万能插件
Feb 25 Javascript
JS 表单验证大全
Nov 23 Javascript
JavaScript获取图片的原始尺寸以宽度为例
May 04 Javascript
JavaScript限定图片显示大小的方法
Mar 11 Javascript
JavaScript实现数组随机排序的方法
Jun 26 Javascript
功能强大的Bootstrap使用手册(一)
Aug 02 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
jquery+php后台实现省市区联动功能示例
May 23 jQuery
ES6基础之 Promise 对象用法实例详解
Aug 22 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
JavaScript OOP类与继承
Nov 15 #Javascript
JavaScript的eval JSON object问题
Nov 15 #Javascript
Javascript 中文字符串处理额外注意事项
Nov 15 #Javascript
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 #Javascript
Dojo 学习笔记入门篇 First Dojo Example
Nov 15 #Javascript
flash 得到自身url参数的代码
Nov 15 #Javascript
javascript 去字符串空格终极版(支持utf8)
Nov 14 #Javascript
You might like
php date与gmdate的获取日期的区别
2010/02/08 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
JavaScript多线程详解
2015/08/12 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
python装饰器使用实例详解
2019/12/14 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
中文教师求职信
2014/02/22 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
自查自纠工作总结
2014/10/15 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android