0

私は次のコードを持っています.....

<head>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="Scripts/hidepanel.js" type="text/javascript"></script>
</head>
<body>
    <div id="outboundForm">
    <p>
        <asp:Button ID="btnSubmit" ClientIDMode="Inherit" runat="server" TabIndex="17" CssClass="btnSubmit"
            OnClick="btnSubmit_Click" meta:resourcekey="btnSubmitResource1" />
        <asp:Button ID="btnReset" runat="server" CssClass="btnReset" OnClick="btnReset_Click"
            meta:resourcekey="btnResetResource1" />
    </p>
</div>
<div id="MailPreviewDiv">
    <asp:Label ID="lblPreview" runat="server" Visible="false" Text="" />
</div>

私の hidepanel.js は次のようになります....

$(document).ready(function () {
    d = new Date();
    d = d.getTime();
    if ($('#reloadValue').val().length == 0) {
        $('#reloadValue').val(d);
        $('#MailPreviewDiv').
    } else {
        $('#reloadValue').val('');
    }

    $('#MainContent_btnSubmit').click(function () {
        $('#outboundForm').hide("slow");
        $('#MailPreviewDiv').show("slow");
    });
});

現在、デフォルトでは非表示になり、MailPreviewDivクリックbtn_submitしたときにのみ表示されMailPreviewDivます。これは従来の HTML で動作しますが、これを .NET に追加するとすぐにクレイジーなことが起こります。送信をクリックすると、移行が行われていることがわかりますが、両方の div がまだ表示されていて、outboundFormdiv がまだ表示されているままです。

私が観察したことは、javascript が起動され、.net マウス クリックが起動された後、トランジションが表示され、両方の div が表示されたままになっていることです。どなたかアドバイスいただけないでしょうか...

これは、部分的なポストバックが発生したことと関係があるかもしれませんが、よくわかりません....

4

2 に答える 2

1

ページがポストバックを実行しているため、すべての html 要素がすぐに jquery 効果を失います。RegisterStartupScript http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspxでポストバックした後、サーバー側で js コードを登録する必要があります 。

于 2012-07-23T14:55:25.990 に答える
0

おそらく、outboundForm を runat="server" に設定してみてください。サーバー側の設定では、可視性が false になっています。

<div runat="server" id="outboundForm" >

分離コード

outboundForm.Visible = false;

JS は正常に動作しているようですが、サーバーはポストバックで非表示の div をリロードしています。

JS に構文エラー $('#MailPreviewDiv') があります。<-- 不完全

しかし、それはあなたがここに投稿するために単純化していたからだと思います.

于 2012-07-23T14:45:24.210 に答える