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 相关文章推荐
Prototype的Class.create函数解析
Sep 22 Javascript
js实现文本框中焦点在最后位置
Mar 04 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
基于Css3和JQuery实现打字机效果
Aug 11 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
Apr 29 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
Aug 10 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
Vue数据绑定简析小结
May 07 Javascript
vue cli 3.0 搭建项目的图文教程
May 17 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
Jul 11 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
8个PHP数组面试题
2015/06/23 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
django中的setting最佳配置小结
2017/11/21 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
JSF界面控制层技术
2013/06/17 面试题
在职研究生自我鉴定
2013/10/16 职场文书
自荐信封面
2013/12/04 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
PHP实现两种排课方式
2021/06/26 PHP