Loader活动类未启用

时间:2014-04-24 19:53:21

标签: javascript jquery semantic-ui

我试图让语义ui模态显示加载器3秒钟,然后消失。添加和删​​除类工作正常,但延迟没有。

使用Javascript:

function login_click() {
    $("#ld").addClass("active").delay(3000).removeClass("active");
}

HTML:

<div class="ui small modal" style="font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;">
    <i class="close icon"></i>
    <div class="header">
        Login
    </div>
    <div class="content">
        <div class="left">
            <div class="ui form">
            <form method="post" action=""  id="loginForm">
                <div class="field">
                    <div class="ui left labeled icon input">
                        <input name="username" type="text" id="username" value="" placeholder="Username" maxlength="20">
                        <i class="user icon"></i>
                    </div>
                </div>
                <div class="field">
                    <div class="ui left labeled icon input">
                        <input name="password" type="password" id="password" value="" placeholder="Password" maxlength="50">
                        <i class="lock icon"></i>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="actions">
          <input class="ui blue submit button" name="submit" type="submit" id="submit" value="Login">
    </div>
    <div id="ld" class="ui inverted dimmer">
        <div class="ui text loader">Loading...</div>
    </div>
</div>

2 个答案:

答案 0 :(得分:3)

.delay()仅用于animations,您必须使用setTimeout()才能获得相同的效果,或者如果您打算使用此功能,则可以扩展jQuery并添加{ {1}}方法。 JsFiddle Demo

toggleClassDelay

然后,对于您当前的示例,您可以这么做:

$.fn.extend({
    //switchClass parameter is to replicate toggleClass functionality. 
    toggleClassDelay: function (className, delay, switchClass)
    {
        this.toggleClass(className, switchClass);

        setTimeout($.proxy(function ()
        {
            this.toggleClass(className, switchClass);
        }, this), delay);
    }
});

答案 1 :(得分:1)

像这样编写函数。

function login_click() {
    $("#ld").addClass("active");
    setTimeout(function(){
        $("#ld").removeClass("active");
    },3000);
}