2013-03-08 1 views
0

Привет, У меня есть следующий код, который позволяет пользователям обмениваться между 3 вкладками, он показывает и скрывает divs, затухая их в и из, мне бы хотелось, чтобы если текущая вкладка выбран на панели навигации, он не исчезает и снова, вместо этого я хочу, чтобы он ничего не делал.Как остановить элемент затухания javascript, уже выбранный

Heres код:

HTML:

<table border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<td width="220px"> 
<p align="left"><table width="220px" cellspacing="0" cellpadding="0"> 

<tr> 
<td class="mya_nav" style="border-color: #B23387;"> 
<a id="show_personal">Personal</a> 
</td> 
</tr> 

<tr> 
<td class="mya_nav" style="border-color: #00c6ff;"> 
<a id="show_favourites">Favourites</a> 
</td> 
</tr> 

<tr> 
<td class="mya_nav" style="border-color: #00e60b;"> 
<a id="show_history">History</a> 
</td> 
</tr> 

</table> 
</p> 

</td> 
<td width="675px"> 

<div id="content"> 


    <div id="personal" <?php echo $personal_current; ?>> 
     <p align="center">Personal</p> 

    </div> 
    <div id="favourites" <?php echo $favourite_current; ?>> 
     <p align="center">Favourites</p> 

    </div> 
    <div id="history" <?php echo $recent_current; ?>> 
     <p align="center">History</p> 

    </div> 
</div> 
</td> 
</tr> 
</table> 

JS:

<script> 

    $('p a').click(function(){ 

     var id = $(this).html().toLowerCase(); 

     $('.current').fadeOut(600, function(){ 

      $('#'+id).fadeIn(600); 
      $('.current').removeClass('current'); 
      $('#'+id).addClass('current'); 

     }); 

    }); 

</script> 

ответ

1

Вы можете попробовать

<script> 

    $('p a').click(function(){ 

     var id = $(this).html().toLowerCase(); 
     if($('.current').attr('id')!=id){ 
      $('.current').fadeOut(600, function(){ 
       $('#'+id).fadeIn(600); 
       $('.current').removeClass('current'); 
       $('#'+id).addClass('current'); 

      }); 
     } 

    }); 

</script> 
+1

Отлично! спасибо –

2
$('p a').click(function(){ 
    var id = $(this).html().toLowerCase(); 
    if (this.not(':focus')) { 
     $('.current').fadeOut(600, function(){ 
      $('#'+id).fadeIn(600); 
      $('.current').removeClass('current'); 
      $('#'+id).addClass('current'); 
    }); 
}); 
0

, если .current ссылается на вкладку, которая в настоящее время показана, вы должны просто игнорировать ее, когда ее щелкнул, проверяя, является ли элемент нажатым текущим. jQuery's hasClass вернет true, если класс элемента содержит current, иначе он возвращает false.

if(!$('#'+id).hasClass('current')){ 
    $('.current').fadeOut(600, function(){ 

     $('#'+id).fadeIn(600); 
     $('.current').removeClass('current'); 
     $('#'+id).addClass('current'); 

    }); 
}