我有一个div

    <div id="fade_bg">
        <div id="login_div">
            <form action="../classes/login/Authenticator.php" method="post">
                <p>username: <input type="text" name="username" /></p>
                <p>password: <input type="password" name="password" /></p>
                <p><input type="submit" name="login" /></p>
            </form>
            <p><a id="cancel" href="#">cancel</a>
        </div>
    </div>

我只想在什么时候展示
<a id="login" href="">Admin login</a>

被点击。我用了
        $(function() {

            $('a#login').click(function() {
                $('#fade_bg').show();
                $('#login').hide();
            });

            $('a#cancel').click(function() {
                $('#fade_bg').hide();
                $('#login').show();
            });
        });

但是,当我单击链接时,我想显示的 div 只出现一瞬间,然后恢复正常,就像我单击了取消按钮一样。为什么会这样?

编辑:JS 调试器控制台上没有错误。

最佳答案

像这样尝试:

$('#login').click(function (e) {
    e.preventDefault();
    $('#fade_bg').show();
    $(this).hide();
});

$('#cancel').click(function (e) {
    e.preventDefault();
    $('#fade_bg').hide();
    $('#login').show();
});

DEMO HERE

关于jQuery .show() 只在一瞬间起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16445408/

10-13 01:05