1

問題:

以下の例では、オプション付きのサイドナビがあります。クリックすると、切り替えられた div が表示されます。メニュー「Dolar」の 3 番目の項目をクリックすると、リンクの下に 3 つのオプションが表示されたドロップダウンが表示されます。

これは素晴らしいことですが、他のリンクをクリックしたときにドロップダウンを閉じる必要があります。これを達成する方法がわかりません。

jsFiddle:

http://jsfiddle.net/visualdecree/4A23Z/39/

jQuery:

注: 面倒かもしれませんが、まだ学習中です。

$('.sn a, .sn-alt a').on('click',function(){ // Sidenav panel script

    var panID = $("#" + $(this).data('panel') );

    $("div[id*='sn-pan-']")
    .stop()
    .hide({width:'toggle'},400);

    $(panID)
    .css({'left' : '139px','overflow':'visible'})
    .stop()
    .animate
    ({ width: "toggle", opacity: "toggle"
    }, { duration: "slow" });

    $(".control-view").hide();  // Fadein menu close button
    $(".control-view").not(":visible").stop().delay(400).fadeTo("fast", 0.33);   

});

$('.sn, .sn-drop').click(function(e) {
    $('ul.sidenav li').not(this).removeClass('active'); // Active class removal / add
    $(this).stop(true, true).toggleClass("active");    
});

$('.sn-alt').click(function(e) {
    $('ul.additional li').not(this).removeClass('active'); // Active class removal / add
    $(this).stop(true, true).toggleClass("active");    
});


$(".control-view").hover( // Hover effect for menu close button
    function () {
    $(".control-view").stop().hide().fadeTo("fast", 1); // Hover in
   }, 
    function () {
    $(".control-view").fadeTo("normal",0.33); // Fade back to previous set opacity
});

$('.control-view').click(function(e) {
        $("div[id*='sn-pan-']")
        .stop(true,true)
        .hide({width:'toggle'}, 100);

        $('ul.sidenav li').not(this).removeClass('active');

        $(".control-view").stop().fadeOut("fast");
});



$(".additional").hide(); // Controls for the 'design' dropdown

$(".sn-drop").click(function(){
    $(".additional").slideToggle(300);
    var scrt_var = Math.random();
    return false; //Prevent the browser jump to the link anchor
});
4

2 に答える 2

2

この JQuery を追加するだけで、サイドバーの他のリンクをクリックすると、.additional

$(".sn").click(function(){
    $(".additional").slideUp(300);
    var scrt_var = Math.random();
    return false; //Prevent the browser jump to the link anchor
});
​
于 2012-09-07T12:19:14.883 に答える
0

ドロップダウンを閉じるトリガーにしたいのが左側のリンクだけである場合は、次のように簡単に実行できます。

$('.sn').click(function(){
    $('.additional').slideUp();
})
于 2012-09-07T12:18:43.700 に答える