1
私は、ASP.NET Masterpageでいくつかのタブ付きナビゲーションをセットアップしました。jQuery CSSを元に戻す変更!
<div id="nav_tabs">
<div id="home" class="tab selected_tab "><a href="Default.aspx" onclick="tabSwitch('home');">Home</a></div>
<div id="products" class="tab other_tab "><a href="ProductList.aspx" onclick="tabSwitch('products');">Products</a></div>
<div id="demos" class="tab other_tab "><a href="Demos.aspx" onclick="tabSwitch('demos');">Demos</a></div>
</div>
そして、私は現在のタブ設定するには、次のjQueryを使用します:それはかなり基本的である私は、タブのいずれかをクリックしたときに、変更が簡単に示されているいくつかの理由について
<script type="text/javascript" >
function tabSwitch(tab) {
$('.tab').css("background-image", "url('/Images/other_Tab.png')");
$("#" + tab).css("background-image", "url('/Images/Active_Tab.png')");
}
</script>
を、しかし、それらは元の状態に戻ります。これはMasterPageの副作用ですか?私はちょうど何か間違っていますか?
ページリロードではポストバックを意味しますか? –
はい。ページが再送信され、ブラウザによってDOMツリーが再作成され、クライアントスクリプトによって行われたDOMの変更はすべて失われます。したがって、サーバー側で行う必要があります(マスターページで 'Request.Path'を確認し、それに応じてイメージURLを調整するなど)。あるいは、クライアント側で '$(document).ready'で行うことができます。例えば、各ページのリロード時に状態が復元されるようにすることができます。 (どのタブに現在のページへのリンクが含まれているかを確認してその画像を変更することができます) – Dmitry
nav_tabsのリンクをクリックしても「ポストバック」は発生しません。 'IsPostback'はfalseになります... – Dmitry