1

したがって、ページの読み込み時に何も表示しないように自動的に設定されるdivがあります。特定のリンクをクリックすると、fadeIn'slow'で表示され、fadeOutではその逆になります。

およびfadeInは、httpリクエストの後で最初にクリックされたときに機能しますが、fadeOutは機能しません(ただし、閉じます)。初めての場合、フェード効果全体がまったく機能しません。次に、hide()およびshow()であるかのように動作します。

コード:

$('#req_login, #srch_login').click(function() {
    $('#popbox, #popbox_bg').show(0); // opacity background
    $('#popbox #container').fadeIn('slow'); // actual div with content
    $("#email_alt_lgn").focus(); // first field in form

    // close popbox with escape key
    $(document).keyup(function(e) {
        if (e.keyCode == 27) { 
            $('#popbox_close').click(); // trigger close link
        }
    });
});     
$('#popbox_close').click(function() {
    $('#popbox #container').fadeOut('slow'); // actual div with content
    $('#popbox, #popbox_bg').hide(0); // opacity background
});

HTML:

// this is the part that should fadeIn() and fadeOut()
<div id="popbox" style="display: none;">
    <div id="container">
        <form method="POST" action="" name="login_form">
            <span style="float: right;"><a id="popbox_close" class="button makeCircle"     title="Sluiten of [Esc]">X</a></span>
            (... form content omitted)
        </form>
    </div>
</div>
<div id="popbox_bg" style="display: none;"></div>

// this is what should trigger the fadeIn() event
<a id="req_login">Inloggen</a><span class="pin_split_white"></span>
4

1 に答える 1

1

私はあなたの問題がこの行だと思います:$('#popbox, #popbox_bg').hide(0); **// opacity background**「閉じる」クリックハンドラー。

問題は、hide()が呼び出された直後(が完了fadeOut()する前)にメソッドが呼び出されることです。fadeOutそれを削除して、機能するかどうかを確認します。

これで解決しない場合は申し訳ありませんが、フィドルがなければ、これが最善の方法です。

幸運を :)

于 2012-08-14T19:03:18.923 に答える