2016-08-05 129 views
0

我正在研究手風琴風格的視頻部分。我目前正在嘗試檢查點擊時是否存在類。我希望它每次只開1節,所以我需要jQuery:如果類存在,將其刪除,然後將其添加到新元素

  1. 檢查上點擊
  2. 存在的類,如果是的話,刪除類
  3. 添加類單擊元素

我試過這樣做只是addClass();toggleClass();但我不是100%確定我錯過了什麼。

添加類

$(".contents-row").click(function(){ 
    $(this).toggleClass("content-open"); 
}); 

切換類

$('.contents-row').click(function(){ 
    $(this).toggleClass('content-open'); 
}); 

這是基本的HTML建立

<div class="contents-row"> 
    <div class="content-option press"> 
     <div class="class-section-title">test1</div> 
    </div> 
    <div class="drop"> 
     test 1 
    </div> 
</div> 

一個完整版本的下降在JSFiddle

感謝您的幫助!

+0

https://jsfiddle.net/7e6bknyr/4/ –

+0

我覺得你應該使用'hasClass()'按您的要求 – Abhi

回答

5

先從content-open類中刪除content-open類。然後將該類添加到單擊的元素,如下所示。

$('.contents-row').click(function(){ 
    $('.content-open').removeClass('content-open'); 
    $(this).addClass('content-open'); 
}); 
0

我想你可以使用這個:

$('.contents-row').click(function(){ 
    $('.contents-row').each(function(){ 
      $(this).removeClass('content-open'); 
    }) 
     $(this).toggleClass('content-open'); 
}); 

的jsfiddle:https://jsfiddle.net/8822fmhk/

+0

的'each'增加了對所有元素的不必要的迭代:'$(」 .contents-row')。removeClass('content-open')'將起作用 –

+0

切換不起作用,因爲點擊ü刪除所有打開的類,並切換隻添加... –

0

你需要從所有divcontents-row類第一刪除類content-open,然後添加到當前點擊div

$('.contents-row').click(function(){ 
    $('.contents-row').removeClass('content-open'); 
    $(this).toggleClass('content-open'); 
}); 
相關問題