2012-03-28 23 views
0

マイHTML:を表示する必要がある

<div class="menu"> 
    <a href="javascript:displayonediv('sections1');">Energy Profile</a> 
    <a href="javascript:displayonediv('sections2');">Statistics</a> 
</div> 

<div name="sections" id="sections1"> 
    .... some stuff .... 
</div> 
<div name="sections" id="sections2"> 
    .... some stuff .... 
</div> 

私のJavaScriptコード:

デフォルトで
function displayonediv(choosendiv) { 
    $('div[name|="sections"]').each(function(index) { 
     if ($(this).attr("id") == choosendiv) { 
      $(this).show(200); 
     } 
     else { 
      $(this).hide(200); 
     } 
    }); 
} 

divdivid=sections2)が表示されていないときにページが読み込まれると、id=sections1が表示されます。フォームを提出した後のコントローラでは、divid=sections2とリダイレクトしています。しかし、私はそのページにリダイレクトしてその特定のdiv(id=sections2)をロードできないようです。私はアンカータグを使用しようとしましたが、私の努力は無駄でした。

答えて

2

は、私はあなたがこのような何かを行うべきだと思います。それが動作しないと、あなたは次のようにひどいHTMLはその後、HTMLを変更することを変更することができる場合

:また

function displayonediv(chosendiv) { 
    //Make sure all other divs are really hidden if there are subsequent calls: 
    $("div[name^=sections]").hide(200); 
    $("#" + chosendiv).show(200); 
} 

:ダイナミックショーと非表示を行うには、この単純な関数を使用してください。

<div class="menu"> 
    <a class="section" href="#sections1">Energy Profile</a> 
    <a class="section" href="#sections2">Statistics</a> 
</div> 

<div class="sections" id="sections1"> 
    .... some stuff .... 
</div> 
<div class="sections" id="sections2"> 
    .... some stuff .... 
</div> 

そして、これを持っているが、JS:

$("a.section").click(function(event) { 
    $("div.sections").hide(200); 
    $($(this).attr('href')).show(200); 
}); 

のjQueryでほとんどの事と同じように、すべてのコードは$(function(){ /*here*/});をする必要があります。

ページがロードされたときセクションの負荷をしないために:私が提案したようなHTMLを調整した後、リンクをクリックしたときの推奨事項については、

$(function() { 
    $(window.location.hash).show(200); 
}); 
+0

おかげで、今のdivディスプレイのどれ。私が持っていた問題を除いて、私の元のコードも(特定していないと悪い、私が知っている)働いていました。私は特定のdivにリダイレクトできませんでした。たとえば、私はセクション2のdivにリダイレクトする(私のURLは次のようになりますhttp://......//?#sections2)セクション1のdivがロードされます。何かご意見は? – Hishalv

+0

それは動作します! http://jsfiddle.net/ukt9a/ –

+0

ああ、私の謝罪は、タイプミスを犯しました。助けてくれてありがとう。とても有難い。すべての作品は現在 – Hishalv

1

名前のあとに|を削除し、$と交換するか、そのままにしてください。私はdivから名前の部分を削除し、代わりにクラスを追加し、$('.sections').each()を使用します。

#sections1, #sections2 { 
    display: none; 
} 

CSSはオプションです:負荷時に、彼らにも見えないようにCSSで

隠すすべてのセクション:

関連する問題