如何防止错误消息闪烁两次?

时间:2017-09-04 04:38:20

标签: javascript jquery

我有一个小错误机制,通过淡入它,等待几秒钟和淡出来显示错误。如果我让它贯穿整个过程,它就可以工作,但是如果我快速点击很多显示错误的东西,那就是出错了。

显示错误消息,然后淡入淡出。所以我尝试通过添加一个名为is_fading的var来解决这个问题,以检查错误的当前状态,但它没有用。这是我的代码:

errors: {
    is_fading: false,

    render: function (msg) {
        GroupManagement.error.html(msg);

        if (GroupManagement.errors.is_fading == true)
        {
            GroupManagement.error.delay(1500).fadeOut();
            GroupManagement.errors.is_fading = false;
            return;
        }
        else
        {
            GroupManagement.error.fadeIn('normal', function()
            {
                GroupManagement.errors.is_fading = true;
                $(this).delay(1500).fadeOut();
                GroupManagement.errors.is_fading = false;
            });
        }
    }
},

如前所述,这正是我认为可以解决问题的方法,但事实并非如此。有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

归功于@Mehdi,答案是:

errors: {
    is_fading: false,

    render: function (msg) {
        GroupManagement.error.html(msg);

        if (GroupManagement.errors.is_fading == true)
        {
            GroupManagement.error.delay(1500).fadeOut('', function () {
                GroupManagement.errors.is_fading = false;
            });
            return;
        }
        else
        {
            GroupManagement.error.fadeIn('normal', function()
            {
                GroupManagement.errors.is_fading = true;
                $(this).delay(1500).fadeOut('', function () {
                    GroupManagement.errors.is_fading = false;
                });

            });
        }
    }
},