JQuery中toggle()的替代方法

  • Post author:
  • Post category:其他


在使用jQuery中的toggle()自动切换显示隐藏方法的时候,调用的时候会把元素隐藏掉。

原因是在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事件判断不同的情况来触发,或者通过设置一个变量计数点击次数来执行不同的函数。

设置一个变量,作为开关,使用if语句,判断开关是开的还是关的,如果是开的就执行开的语句,再把开关关掉,从而实现点击切换的效果

        var i=true;//表示开关
        $(".one .top").click(function() {
            if(i){
                 $(".content").hide("slow");
                 i=false;
            }else  {
                 $(".content").show(1500);
                 i=true;
            }
 
        });



版权声明:本文为m0_62098435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。