加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

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

发布时间:2023-10-11 15:05:10 所属栏目:教程 来源:
导读:最近编写一个实例的时候使用到toggle函数,但是调用的时候会把元素隐藏掉,之前使用过也只是多个事件轮流切换罢了。百思不得其解于是就在网上搜索查看jQuery API文档。终于发现了原因:

原来在jQuery 1.9版本之后
最近编写一个实例的时候使用到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(); //阻止元素的默认动作(如果存在)
 
});
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章