2

この JS / Jquery スクリプトに問題があります。昨日は完全に機能していましたが、今日は正しく機能しません。

ローディング.gifはフェードインしますが、フェードアウトしません...

これは私のHTMLです

...
 <div class="banner">
    <img src="img/selosiade.png"/><br />
    <form>
        <input id="username" class="login" type="text" name="username" autocapitalize="off" placeholder="Nome de Usu&aacute;rio"><br />
        <input id="password" class="login" type="password"  name"password" autocapitalize="off" placeholder="Senha"><br />
        <input type="button" value="Login" onClick="login.db();">
        <img id="loading" src="img/loading.gif" />
...

(すべてのタグは適切に閉じられています)

これは #loading id に設定されるものです。

#loading{
    display:none;
    z-index:999;
    margin-top:5px;
    margin-left:50px;
    position:absolute;
}

そして、これはlogin.db()スクリプトです:

var login = {
    db: function () {
        $('#loading').fadeIn(800, function () {

            if (($('#username').val().length === 0) && ($('#password').val().length === 0)) {
                $('#user_pass_vazio').fadeIn(800).delay(800).fadeOut(800);
                $('#loading').delay(800).fadeOut(800);
            } else if ($('#username').val().length === 0) {
                $('#user_vazio').fadeIn(800).delay(800).fadeOut(800);
                $('#loading').delay(800).fadeOut(800);
            } else if ($('#password').val().length === 0) {
                $('#pass_vazio').fadeIn(800).delay(800).fadeOut(800);
                $('#loading').delay(800).fadeOut(800);
            }

            var pass1 = $('#password').val();
            var pass = CryptoJS.SHA1(pass1);
            var user = $('#username').val();

            var flag = false;
            $.ajax({
                url: "http://apt-ghaschel.webatu.com/php/check.php",
                type: "POST",
                async: false,
                data: {
                    user: user,
                    pass: pass
                },
                success: function (msg) {
                    var b = msg.match(/^.*$/m)[0];
                    $('#store').text(b);
                    flag = true;
                }
            });

            if (flag) {
                return;
            }

            b = $('#store').text();
            if (b == '1') {
                $('#login_certo').fadeIn(800).delay(800).fadeOut(800, function () {
                    $('div.banner').fadeOut(800, function () {
                        var encrypted = CryptoJS.AES.encrypt(pass, a);
                        $.cookie('username', user, {
                            expires: 365
                        });
                        $.cookie('username', encrypted, {
                            expires: 365
                        });
                        window.open("unidades.html?username=" + user + "");
                    });
                });
            } else if (b == '2') {
                $('#login_errado').fadeIn(800).delay(800).fadeOut(800, function () {});
            } else {
                $('#erro_desconhecido').fadeIn(800).delay(800).fadeOut(800);
            }
        });
    }
}

これがばかげている場合は申し訳ありませんが、何が間違っているのかを理解することができます。

4

2 に答える 2

1

これが役立つかどうかを確認し、使用してください

$("#loading").stop().fadeOut(800);

それ以外の

$("#loading").delay(800).fadeOut(800);

于 2013-02-22T13:32:34.160 に答える
1

フィドルでCryptoJSを無効にすると、フェードアウトが適切に機能します。

ちなみに、ログインフォームのdivは最初はフェードインしません。使用することをお勧めします

$(document).ready(function() {
    pisca.telalogin();
});
于 2013-02-22T13:29:54.430 に答える