2016-08-05 43 views
0

所以我有這個東西,我需要一個div在任何時候顯示取決於點擊的按鈕。我發現this大提琴這幾乎是完美的,除了因爲它不顯示當一個鏈接被選中。我想要這樣做,以便所選的鏈接可以有一個活躍的類或看起來不同於其他鏈接。那可能嗎?我一直在查看問題,我無法真正找到答案。顯示/隱藏div的選擇/活動類

如果任何人有興趣,我使用它for this(但代碼真的搞砸了,對不起)。 (我也想換頂行的過濾器按鈕復位並過濾所有的圖片,但我知道這是一個不同的問題。不過任何幫助,將不勝感激!)

HTML

<div id="linkwrapper"> 
    <a id="link1" href="#">link1</a><br/> 
    <a id="link2" href="#">link2</a><br/> 
    <a id="link3" href="#">link3</a> 
</div> 

<div id="infocontent"> 
    <div id="link1content">Information about 1.</div> 
    <div id="link2content">Information about 2.</div> 
    <div id="link3content">Information about 3.</div> 
</div> 

jQuery的

$(document).ready(function(){ 

    $("#infocontent").hide(); 
    $("#infocontent div").hide(); 


    $('#linkwrapper a[id]').click(function(){ 

     var vsubmen = this.id +"content"; 

     if($("#infocontent").is(":visible") == false) { 
      $("#" + vsubmen).show('fast',function() { 
       $("#infocontent").slideDown(); 
      }); 
     } else if ($("#" + vsubmen).is(":visible") == false) { 
      $("#infocontent").slideUp('slow',function(){ 
       $("#infocontent div").hide(); 
       $("#" + vsubmen).show(); 
       $("#infocontent").slideDown('slow');  
      }); 
     } else { 
      $("#infocontent").slideUp('slow',function(){ 
       $("#infocontent div").hide(); 
      }); 
     } 
     return false; 
    }); 

}); 

回答

1

可以簡化小提琴這樣的:

$('a[id^=link]').click(function(){ 
    $('a[id^=link]').removeClass('meactive'); 
    $(this).addClass('meactive'); 

    $('#infocontent>div').slideUp(); 

    var tmp = this.id; 
    $('#'+tmp+'content').slideDown(); 
}); //end a.click 

jsFiddle Demo


注:

(1)$('a[id^=link]') - 抓住所有a元件與開始於link

(2)$('#' +tmp+ 'content')一個ID - 建立選擇器,如:$('#link3content )`

+0

這正是我所需要的,非常感謝你! – grizzly

+0

如果此答案解決了您的問題,請將其標記爲正確答案(單擊答案旁邊的複選標記)以關閉問題。 *對你的項目表示最良好的祝願。* – gibberish