美文网首页
jq高版本移除toggle事件,怎么让高版本的toggle事件也

jq高版本移除toggle事件,怎么让高版本的toggle事件也

作者: _信仰zmh | 来源:发表于2017-12-04 17:44 被阅读0次

点击按钮button,让div显示,重复点击实现,显示与隐藏的切换。

js原生也可以实现,点击事件中添加判断div的状态,如果显示则隐藏,达到切换的效果。

其次想到的是jQuery中的toggle()事件。

语法如下:

<button id="btn">click me</button>
<div id="box" style="display:none;">
          jq 1.9版本以下的toggle()
</div>
$("#btn").toggle(function(){
       $("#box").show();
      //$("#box").css("display", "block");
},
function(){
       $("#box").hide();
       //$("#box").css("display", "none");
});

这样就可以控制其显示与隐藏的切换了,但是今天在项目中写的toggle事件很奇怪,页面刷新后,添加toggle()的按钮都不见了,点击也没反应。

调试发现高版本的jquery中移除了toggle(),但是很奇怪的是进到这个页面的时候,那个button先闪了以下,然后就被隐藏掉了(display:none),自然就点击不到了。

如果还想使用1.9版本之前的toggle事件,怎么办?

在js中添加如下代码:

// 1.9以上高版本的jq不支持toggle,解决如下:
            $.fn.toggle = function( fn, fn2 ) {
                var args = arguments,guid = fn.guid || $.guid++,i=0,
                    toggle = function( event ) {
                        var lastToggle = ( $._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
                        $._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
                        event.preventDefault();
                        return args[ lastToggle ].apply( this, arguments ) || false;
                    };
                toggle.guid = guid;
                while ( i < args.length ) {
                    args[ i++ ].guid = guid;
                }
                return this.click( toggle );
            };

添加上之后,就可以接着使用toggle()了。

相关文章

  • jQuery toggle事件

    toggle方法用绑定多个事件处理函数,以响应被选元素的轮流的 click 事件。 该方法也可用于切换被选元素的h...

  • 总结用于交互的四个动画方法

    toggle 切换元素的可见状态。如果元素可见,切换为隐藏;隐藏则切换为可见。 例子如下: 在1.9版本以下的jQ...

  • jQuery事件操作

    简单方式注册/移除事件 注册:jq对象 .on(‘事件名 例如click’,‘事件处理程序’) 移除:jq对象.o...

  • jQuery 动画

    JQ中的运动 show() , hide() , toggle()fast normal slow fadeIn(...

  • >>>>> JQ-第四节

    JQ中的运动 show() , hide() , toggle()fast normal slow fadeIn(...

  • Bug相关

    jquery 相关 使用jq的toggle()、toggleClass() 、hide()、slideUp(),f...

  • bootstrap中下拉菜单(dropdown)的问题

    通过行间触发事件: 通过jQuery触发事件: 当使用方法去触发时,其中dropdown('toggle')和想象...

  • jQuery 1.9 中删除的一些方法

    今天在弄jQuery的时候发现toggle方法竟然失效了,然后搜了一下发现原来toggle方法在1.9版本的时候就...

  • jquery的基本操作

    1、jq中的hover事件(移入/移除)写法参照: 2、jq中的阻止默认事件; ** 3、jq中的阻止事件传递(防...

  • Toggle

    一、三个Toggle,三选一 二、给Toggle注册事件,选择哪个执行哪个里面的方法1、分别写三个带bool类型参...

网友评论

      本文标题:jq高版本移除toggle事件,怎么让高版本的toggle事件也

      本文链接:https://www.haomeiwen.com/subject/svtumxtx.html