Javascript 为什么即使我';我没有使用切换?

Javascript 为什么即使我';我没有使用切换?,javascript,jquery,html,asp.net,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"> &l

如果没有错误,我试图隐藏
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>
$(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");
        }
    });
});

我找到了解决办法。jquery 1.6版存在此问题。如果遇到此问题,请确保已更新到最新的jquery版本。

这似乎是因为您正在发回服务器,页面提交按钮并将其重置为原来的状态。或者动画正在运行,页面没有发回?它不会回答您的“为什么”问题,但您可以选择使用
切换
并向其传递bool参数,这样您就可以将单击函数向下折叠到一行:
$(“.Error\u Log”)。切换(!page\u ClientValidate(“”))