为什么.show()和.hide()切换即使我没有使用切换?

时间:2015-06-11 14:12:09

标签: javascript jquery html asp.net

我试图隐藏div#errorLog如果没有错误,并显示它是否存在。 jQuery检测错误很好,执行正在通过if语句没有问题。但是,在执行代码时,hide()会显示div(如果已隐藏),show()会隐藏div(如果已经显示)。

我正在使用IE 11.它在Firefox中没有问题。为什么show()hide()充当切换?

HTML代码(不包括母版页):

<asp:Content ContentPlaceHolderID="Title" runat="server">
    <title>Login</title>
</asp:Content>

<asp:Content ID="Login" ContentPlaceHolderID="Log_orReg" runat="server">
    <h1 class="chosen"><a href="Login.aspx">Login</a></h1>
    <h1 class="inline">|</h1>
    <h1 class="notChosen"><a href="Register.aspx">Register</a></h1>
    <br />

    <form id="LoginForm" style="margin: 5px; " runat="server">
        <div class="fill">Username:</div><asp:TextBox id="Username" CssClass="textboxes" runat="server" />
        <asp:RequiredFieldValidator ID="vldUsername" runat="server" ErrorMessage="You must enter a username." ControlToValidate="Username"  Text="*"></asp:RequiredFieldValidator>
        <br />
        <div class="fill">Password:</div><asp:TextBox id="Password" CssClass="textboxes" TextMode="Password" runat="server" />
        <asp:RequiredFieldValidator ID="vldPassword" runat="server" ErrorMessage="You must enter a password." ControlToValidate="Password" Text="*"></asp:RequiredFieldValidator>
        <br />
        <asp:button ID="LogReg_btn" CssClass="LogReg_btn" onclick="cmd_submit" runat="server" Text="Login"></asp:button>
        <div id="errorLog" class="Error_Log" runat="server">
            <asp:ValidationSummary ID="ValidationSummary" runat="server" ShowMessageBox="false" DisplayMode="BulletList" ShowSummary="true" ShowValidationErrors="true" />
        </div>
    </form>
</asp:Content>

Jquery代码:

$(document).ready(function () {
    $('.Error_Log').hide();
    var bottom = $(".LogReg_forms").position().top + $('.LogReg_forms').outerHeight(true);
    var position = parseInt(bottom + 10) + "px";

    $(".Error_Log").css('top', position);

    $(".LogReg_btn").click(function () {
        var isPageValid = Page_ClientValidate('');

        if (isPageValid == true) {
            $(".Error_Log").hide("fade");
        }
        else {
            $(".Error_Log").show("fade");
        }
    });
});

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。这个问题与jquery版本1.6有关。如果您遇到此问题,请确保更新到最新的jquery版本。