如何在jQuery click函数中使用jQuery时间间隔?

ej83mcc0  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(107)

我正在创建一个下拉菜单,需要隐藏菜单栏时,下拉展开,并显示一段时间后,当它被折叠的菜单。问题是,我的代码没有删除我用jQuery添加和删除的“toggle-off”类。结果是折叠下拉菜单后菜单栏不会重新出现。问题是jquery函数在时间间隔内的部分没有执行。
jQuery:

$( ".menu-close" ).click(function() {
                        var interval = setInterval(function () {
                            $( ".navbar-header" ).addClass( "toggle-on" );
                            $( ".navbar-header" ).removeClass( "toggle-off" );
                        }, 500);
                        clearInterval(interval);
                        $( "#mob-nav" ).removeClass( "margin-up" );
                        $( "#mob-nav" ).addClass( "margin-down" );
                        $( ".animated" ).removeClass( "go" );
                        $.scrollLock( false );
                    });

字符串

laik7k3q

laik7k3q1#

为什么不使用setTimout()?

$('.menu-open').on('click',function(){
    $('.navbar-header').addClass('toggle-off').removeClass('toggle-on');
    $('.animated').addClass('go');
    $('#mob-nav').addClass('margin-up').removeClass('margin-down');
    $.scrollLock( true );
});

字符串
和闭函数

$('.menu-close').on('click',function(){
    setTimeout(function(){
        $('.navbar-header').addClass('toggle-on').removeClass('toggle-off');
    }, 500);
    $('#mob-nav').removeClass('margin-up').addClass('margin-down');
    $('.animated').removeClass( "go" );
    $.scrollLock( false );
});

vmpqdwk3

vmpqdwk32#

你可以实现这个功能。

setInterval(function(){

    if(myDiv.style.display == "block"){
        myDiv.style.display = "none";
    }else{
        myDiv.style.display = "block";
    }

}, 3000);

字符串

相关问题