2

しばらくの間、必要なものを見つけようとして、@stackoverflow、@google などの多くのリンクをチェックしましたが、何かが 100% 機能しないたびに

したがって、問題は、一度に 1 つだけが開かれ、同じリンクを押すと閉じられる DIV の表示/非表示を作成することです。アクティブな DIV リンクはスタイルを変更する必要があります。

最もよく知られているのは次のとおり です 。開いたものを閉じます。

これも興味深いです: http://dimdajdeneg.com/temp/menu2.html それはそれ自体を閉じますが、「DIVを表示」リンクスタイルは変更できません

私はそれが簡単であることを知っていますが、おそらくそれは月曜日のせいです:) 誰でも私を助けることができますか?

前もって感謝します!

4

3 に答える 3

4

これが私が思いついたものです。クリックされたもの(内側.not())を除くすべてがフェードアウトし、代わりにトグルされます。

HTML:

<a href="" data-id="d1">Link 1</a>
<a href="" data-id="d2">Link 1</a>
<a href="" data-id="d3">Link 1</a>
<div id="d1">Div 1</div>
<div id="d2">Div 2</div>
<div id="d3">Div 3</div>

CSS:

a {
    background:blue;
    color:red;
}
.active {
    background:green;
    color:white;
}
div{
    display:none;
}

jQuery:

$('a').click(function(ev){
    ev.preventDefault();
    var id = $(this).data('id');
    $('a').not($(this).toggleClass('active')).removeClass('active');

    // parallel fading:      
    $('div').not($('#'+id).fadeToggle(500)).fadeOut(500);
    // OR
    // sequential fading:
    $.when($('div').not($('#'+id)).fadeOut(500)).done(function(){
        $('#'+id).fadeToggle(500)
    });
});

jsFiddle:

http://jsfiddle.net/fKGc5/

于 2013-02-18T17:50:44.473 に答える
0

リンクでコーディングを試しました:http://dimdajdeneg.com/temp/menu.html

そして、そのコードを以下のように変更しました...

function m_slide(m_inactive) {$('.m_box').each(function(index) {
  if ($(this).attr("id") == m_inactive) {
            $(this).toggle("fast");
        }
    else {
            $(this).slideUp(300);
    }
});}

スライドダウンi have usedトグル()`にもかかわらず;

このフィドルを試してください:http://jsfiddle.net/RYh7U/92/

于 2013-02-18T17:42:24.220 に答える
0

あなたの質問を正しく理解していれば..

.click()これをイベントに追加します。

$('#linkwrapper > a').each(function () { 

$(this).removeClass("isActive");

});

$(this).addClass("isActive");

isActive明らかに、クラスには CSS が必要です。

于 2013-02-18T17:50:55.650 に答える