2016-05-23 99 views
-1
消失

我試圖切換到全屏模式裏面一個按鈕被點擊時DIV#控制,使所有其他DIV#控制具有相同的父,DIV#按鈕,消失。兄弟姐妹點擊jQuery的

我的HTML:

  <div id="testpile" class="inner cover"> 
       <div id="buttons" class="buttons"> 
        <div id="controls" class="col-md-4 rat"> 
         <h1>Rationelt</h1> 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
         <a id="1" class="btn btn-group btn-default" role="button">Rationelt</a> 
        </div> 
        <div id="controls" class="col-md-4 emo"> 
         <h1>Emotionelt</h1> 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
         <a id="2" class="btn btn-group btn-default" role="button">Emotionelt</a> 
        </div> 
        <div id="controls" class="col-md-4 per"> 
         <h1>Personligt</h1> 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
         <a id="3" class="btn btn-group btn-default" role="button">Personligt</a> 
        </div> 
       </div> 
      </div> 

我的jQuery:

<script type="text/javascript"> 
    $('.btn-group').on('click', function() { 
     $(this).parent().toggleClass('col-md-4 col-md-12'); 
     $(this).parent().siblings().toggleClass('col-md-4 col-md-0'); 
    }); 
</script> 

我敢肯定,我遇到的問題是,我還沒有成功地瞄準正確的DIV,但我已經盡力解決這個問題,可悲的是,一直未能。

+0

複製ID是無效的HTML。自1999年以來,這種方式一直是https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute。它有時可能會工作,但會出現難以預料的結果,難以調試。 –

+0

謝謝你提醒我,這是一個愚蠢的錯誤,我很高興我的頭腦裏有我的腳本。 – user2304993

回答

0

我不認爲你正在做任何事情的父母的兄弟姐妹,除了給他們一個專欄類。從我所瞭解的你需要添加的方法是.hide()。 這將隱藏你想隱藏的div。

下面是從jQuery API的鏈接,這將幫助你並給予例子link

0

刪除ID controls。 ID不應該重複,在那裏使用類;

<div class="controls col-md-4 rat"> 

並使用JS like;

$('.btn-group').on('click', function() { 
    $(".controls").hide(); 
    $(this).parents(".controls").show(); 
}); 
1

順便控件的ID被複制後,直接將父母兄弟姐妹的顯示顯示/隱藏在每個按鈕上點擊:

$('.btn-group').on('click', function() { 
    $(this).parent().siblings().toggle(); 
}); 
+0

我必須說,我確實得到了其他代碼的工作,像這樣:fiddle.jshell.net/274NN/5我只是想整理它,所以我不會複製粘貼每個按鈕1次。這樣做是愚蠢的想法嗎?另外,謝謝你的時間。另外,我刪除了重複的ID,謝謝。 – user2304993

1

你的目標正確的DIV,儘管無效的重複ID。 使用toggleClass是個問題,尤其是在第一次點擊之後,因爲它會從當前狀態切換每個類,這會導致不一致的結果,具體取決於用戶在每個項目上點擊的順序 - 您似乎也會切換網格列聲明,我不確定是你的意圖?

下面,我改變了你的代碼,使用addClassremoveClass明確(並取得了「隱藏」仍有小幅可見,所以你可以看到後續的點擊效果)

$('.btn-group').on('click', function() { 
 
     $(this).parent().removeClass('hidden'); 
 
     $(this).parent().siblings().addClass('hidden'); 
 

 
    });
.hidden {opacity:0.1}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="testpile" class="inner cover"> 
 
       <div id="buttons" class="buttons"> 
 
        <div id="controls" class="col-md-4 rat"> 
 
         <h1>Rationelt</h1> 
 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
 
         <a id="1" class="btn btn-group btn-default" role="button">Rationelt</a> 
 
        </div> 
 
        <div id="controls" class="col-md-4 emo"> 
 
         <h1>Emotionelt</h1> 
 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
 
         <a id="2" class="btn btn-group btn-default" role="button">Emotionelt</a> 
 
        </div> 
 
        <div id="controls" class="col-md-4 per"> 
 
         <h1>Personligt</h1> 
 
         <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p> 
 
         <a id="3" class="btn btn-group btn-default" role="button">Personligt</a> 
 
        </div> 
 
       </div> 
 
      </div>

+0

我也看到了「其他類」的問題,OP可能需要檢測「hdden/not hidden」的長度來適用適當的類(不是問題的一部分),但很好的方式來顯示效果BTW。 –

+0

啊,我在一段時間內沒有寫代碼,我忘了我不能多次使用ID,謝謝你提醒我。但我必須說,我確實得到了其他代碼工作,像這樣:http://fiddle.jshell.net/274NN/5/ 我只是想整理它,所以我不會複製粘貼它1每個按鈕的時間。這樣做是愚蠢的想法嗎?另外,謝謝你的時間。 – user2304993

+0

在你的小提琴中切換類可以很好地處理2個元素,但是有兩個以上的切換狀態並不總是與你需要的匹配(如果用戶點擊A,那麼會關閉B和C;然後點擊C,最終會打開A關閉,但B重新打開)。您還切換到在函數內部使用顯式ID,這將需要複製粘貼代碼的多個按鈕;你原來的方式('$(this).parent)...')我認爲更好。 –