为什么我的汉堡包在第一次点击后停止工作?

时间:2017-03-21 20:13:27

标签: javascript jquery

我有一个汉堡包图标,用我的sidenav动画打开和关闭。我不得不放置功能会造成延迟,因此用户不会双击并在点击其区域外点时让汉堡包动画关闭(这是因为当点击页面上的任何位置时sidenav可以关闭)

按钮延迟似乎工作正常,但是我的汉堡包在第一次出现后不会再次动画。有人可以帮我找出原因吗?

$hamburger.on("click", function(e) {
        $(".hamburger").toggleClass("is-active");
        event.preventDefault();
        var el = $(this);
        el.prop('disabled', true);
        var time = setTimeout(function(){el.prop('disabled', false); }, 1000);

        $(document).on("click", function(e) {
            if($hamburger.hasClass("is-active")){
                clearTimeout(time);
                $hamburger.toggleClass("is-active");
            }
        });
    });

更新

我将该文件移出该功能并将其更改为窗口onclick。然后给了汉堡包与滑块动画持续时间相同的延迟,这样只有在滑块完全用完后才会点击它,这有助于避免我遇到的其他一些问题。谢谢大家的帮助。

$hamburger.on("click", function(e) {
        $hamburger.toggleClass("is-active");
        event.preventDefault();
        var el = $(this);
        el.prop('disabled', true);
        setTimeout(function(){el.prop('disabled', false); }, 300);
    });

    $(window).click(function() {
        if($hamburger.hasClass("is-active")){
            $hamburger.removeClass("is-active");
        }
    });

0 个答案:

没有答案
相关问题