2015-07-10 2 views
2

Как переключить класс значков с fa-chevron-down на fa-chevron-up на ссылку, если видна toggle-project-stages div?Если div виден, то переключите значок

jsFiddle

$(".toggle-project-stages").hide(); 

$(".toggle-project-status-downArrow").click(function(e){ 
    e.preventDefault(); 
    var toggleDiv = $(this).parent().prev('.panel-heading').find(".toggle-project-stages").toggle(200); 

    $(".toggle-project-stages").not(toggleDiv).slideUp(200); 
}); 

ответ

3

Вы можете использовать toggleClass()

$(".toggle-project-stages").hide(); 

$(".toggle-project-status-downArrow").click(function (e) { 
    e.preventDefault(); 
    var toggleDiv = $(this).parent().prev('.panel-heading').find(".toggle-project-stages").toggle(200); 


    $(".toggle-project-stages").not(toggleDiv).slideUp(200); 
    var $i = $('i', this).toggleClass('fa-chevron-down fa-chevron-up') 
    $('.toggle-project-status-downArrow i').not($i).removeClass('fa-chevron-up').addClass('fa-chevron-down') 
}); 

Демы: Fiddle

+0

симпатично! Это и получилось! Спасибо огромное! Я отмечаю это как правильный ответ. – brunodd

0

В обратном вызове toggle() вы можете использовать toggleClass для удаления chevron-down и chevron-up. Попробуйте это:

$(".toggle-project-status-downArrow").click(function (e) { 
    e.preventDefault(); 
    var $el = $(this); 
    var toggleDiv = $el.closest('div').prev('.panel-heading').find(".toggle-project-stages").stop(true).toggle(200, function() { 
     $el.find('i').toggleClass('fa-chevron-down fa-chevron-up'); 
    }); 
    $(".toggle-project-stages").not(toggleDiv).stop(true).slideUp(200); 
}); 

Example fiddle

+0

Привет, спасибо, что ответили. Я попробовал ваше предложение, и он почти там. Стрелка должна опускаться, когда я нажимаю на другую ссылку. Проверьте это: http://jsfiddle.net/brunodd/bQ8G3/129/ – brunodd

+1

Вот исправление для этого: http://jsfiddle.net/bQ8G3/133/ –

1

$(".toggle-project-stages").hide(); 
 

 
$(".toggle-project-status-downArrow").click(function(e){ 
 
    e.preventDefault(); 
 
    var toggleDiv = $(this).parent().prev('.panel-heading').find(".toggle-project-stages").toggle(200); 
 
    if($(this).children().hasClass("fa-chevron-down")){ 
 
     $(this).children().removeClass('fa-chevron-down').addClass('fa-chevron-up');  
 
    } 
 
    else{ 
 
     $(this).children().removeClass('fa-chevron-up').addClass('fa-chevron-down');  
 
     
 
    } 
 
    
 
    
 
    
 
    $(".toggle-project-stages").not(toggleDiv).slideUp(200); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<div class="panel-dashboard"> 
 
    <div class="panel-heading"> 
 
     <div class="toggle-project-stages"> 
 
      <p>This is what I want to show!</p> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="toggle-project-status"> 
 
     <a href="#" class="toggle-project-status-downArrow">Show div <i class="fa fa-chevron-down"></i></a> 
 
    </div> 
 
</div> 
 

 
<br/><br/> 
 

 
<div class="panel-dashboard"> 
 
    <div class="panel-heading"> 
 
     <div class="toggle-project-stages"> 
 
      <p>This is what I want to show!</p> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="toggle-project-status"> 
 
     <a href="#" class="toggle-project-status-downArrow">Show div <i class="fa fa-chevron-down"></i></a> 
 
    </div> 
 
</div>

0

$(".toggle-project-stages").hide(); 
 

 
$(".toggle-project-status-downArrow").click(function (e) { 
 
    e.preventDefault(); 
 
    var toggleDiv = $(this).parent().prev('.panel-heading').find(".toggle-project-stages").toggle(200); 
 
    $(".toggle-project-stages").not(toggleDiv).slideUp(200); 
 

 
    var $i = $('i', this).toggleClass('fa-chevron-down fa-chevron-up') 
 
    $('.toggle-project-status-downArrow i').not($i).removeClass('fa-chevron-up').addClass('fa-chevron-down') 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="panel-dashboard"> 
 
    <div class="panel-heading"> 
 
     <div class="toggle-project-stages"> 
 
      <p>This is what I want to show!</p> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="toggle-project-status"> 
 
     <a href="#" class="toggle-project-status-downArrow">Show div <i class="fa fa-chevron-down"></i></a> 
 
    </div> 
 
</div> 
 

 
<br/><br/> 
 

 
<div class="panel-dashboard"> 
 
    <div class="panel-heading"> 
 
     <div class="toggle-project-stages"> 
 
      <p>This is what I want to show!</p> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="toggle-project-status"> 
 
     <a href="#" class="toggle-project-status-downArrow">Show div <i class="fa fa-chevron-down"></i></a> 
 
    </div> 
 
</div>

Смежные вопросы