toggle()隐藏问题的解决方法

一个实例中使用到toggle函数,但是调用的时候会把元素隐藏掉,经搜索终于找到了原因,需要的朋友可以参考下

最近编写一个实例的时候使用到toggle函数,但是调用的时候会把元素隐藏掉,之前使用过也只是多个事件轮流切换罢了。百思不得其解于是就在网上搜索查看jQuery API文档。终于发现了原因: 
原来在jQuery 1.9版本之后,toggle()发生了变化,以下是官网的Notes: 
Note: This method signature was deprecated in jQuery 1.8 and removed in jQuery 1.9. jQuery also provides an animation methodnamed .toggle() that toggles the visibility of elements. Whether the animation or the event method is fired depends on the set of argumentspassed. 
在早期的版本,存在两个同名的toggle(),但是所执行的方法却是不一样的: 
.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] ) 
Description: Bind two or more handlers to the matched elements, to be executed on alternate clicks. 
===================================================== 
.toggle( [duration ] [, complete ] ) 
Description: Display or hide the matched elements. 
而之后的版本把第一个toggle()函数给去掉了,导致用于调用切换功能时会把元素隐藏了。 
======================== 
既然去掉了这个函数,但是实现需求还是要的。怎么来实现多个事件的轮流切换了? 
可以通过click事件判断不同的情况来触发,或者通过设置一个变量计数点击次数来执行不同的函数。

var num=0; 
$(‘#button‘).click(function(e){ 
    if(num++ %2 == 0){ 
        //doSomething 
    }else{ 
        //doOtherSomething 
    } 
        e.preventDefault(); //阻止元素的默认动作(如果存在) 
});
时间: 2024-08-29 04:36:28

toggle()隐藏问题的解决方法的相关文章

frameset 在 Google Chrome 中无法隐藏左边栏解决方法!

使用Frameset 框架,发现在IE下, <frameset name="mainDefine" cols="200,10,*" frameborder="NO" border="0" framespacing="0" rows="*"> <frame name="LeftFrame" noresize scrolling="auto&q

&amp;#65279导致页面顶部空白一行解决方法

找了半天,以为是自己写的代码问题原来是被编码格式坑了.当我百度了才知道原来是这样子的. 文件编辑的时候utf-8带了bom头. 这种编码方式一般会在windows操作系统中出现,比如记事本编辑器,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM). 它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码. 对于一般的文件,这样并不会产生什么麻烦. 但对于html来说,BOM是个大麻烦. 因为浏览器在解析html页

IE input file隐藏不能上传文件解决方法

当大神们都在探讨更深层次的问题时,我还在这里转载发些肤浅的问题解决方案.罢了,为了和我一样笨的后来人. 问题: 上传文件时,用<input type="file" />标签,但是默认的file标签很难看,而且每个浏览器下都有很大差距. 1.一般解决办法: 我们基本都把真正的file标签给隐藏,然后创建一个标签来替代它,比如我们创建一个a标签来替代它,隐藏file标签,单击a标签时触发file标签click弹出选择文件窗口,选择文件之后,触发file的change事件提交.

onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法

1. onchange事件监听input值变化的使用方法: <input id="test"></input> $("input").change(function(){ alert("aaa"); } 2. 网页开发时,如果有input隐藏域,通过js改变隐藏域的值,无法触发change事件. 原因:onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发. 解决方法:在这种情况下,可以在改变隐藏域的值

移动端横向溢出隐藏解决方法

今天制作网站自适应中,遇到一个问题:如果使用定位居中法, 在电脑端设置溢出隐藏起作用, 而在移动端中,右边溢出却可以向右滑动. 具体代码如下: body { overflow-x:hidden; } .box { position:absolute; left:50%; width:500px; height:200px; background:red; margin-left:-250px; text-align:center; } 右边溢出部分在移动端设备中,可向右滑动.查找了相关资料,最后

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     

doesn&#39;t contain a valid partition table 解决方法

输入 fdisk -l 可以看到 输入 fdisk /dev/xvdb 跟着向导一步步做下去(如果不知道该输入什么,就输入“m”并回车,可以打印出菜单): Command (m for help): m Command action a   toggle a bootable flag b   edit bsd disklabel c   toggle the dos compatibility flag d   delete a partition l   list known partiti

git提交过程中遇到的 index.lock 问题导致无法提交的解决方法

在提交代码的过程中,可能会遇到下面的问题: fatal: Unable to create 'C:/programLists/zzw-q1/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is

阿里云Windows server 2008服务器搭建VPN 图文教程,购买境外服务器自建vpn,Win8/win10 连接VPN被阻止,出现812错误解决方法

阿里云Windows server 2008服务器搭建VPN 图文教程(超详细) 第一步:购买阿里云服务器,本文使用的是Windows Server 2008 R2 企业版64位中文版 IP地址:47.88.151.129,所属节点:亚太(新加坡) 服务器配置:2核,4GB,带宽10Mbps 第二步: 打开服务器管理器,点击添加角色,如下图: 本帖隐藏的内容然后弹出如下图所示,点击下一步: 点击后,如下图,勾选网络策略和网络服务,然后点击下一步: 接着继续点击下一步,直到弹出如下图所示的页面,勾