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广告代码
May 30 Javascript
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
JavaScript学习笔记(一) js基本语法
Oct 25 Javascript
jQuery jcrop插件截图使用方法
Nov 20 Javascript
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
jQuery树插件zTree使用方法详解
May 02 jQuery
Vue项目分环境打包的实现步骤
Apr 02 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 Javascript
ant design pro中可控的筛选和排序实例
Nov 17 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导航下拉菜单的实现如此简单
2013/09/22 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
php显示页码分页类的封装
2017/06/08 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
运动会解说词100字
2014/01/31 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
九年级化学教学反思
2016/02/22 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS