3

我有一个 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 调试器控制台上没有错误。

4

2 回答 2

10

试试这样:

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

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

在这里演示

于 2013-05-08T16:18:33.267 回答
0

提交按钮总是发布表单,所以

<input type="submit" name="login" />

将其替换为

<input type="button" name="login" />
于 2013-05-08T16:38:00.497 回答