0

1 div の可視性を制御する 3 つのボタンがあります。

div に対して次のことを行います。

  • 3 つのボタンのいずれかが最初にクリックされたときに表示する
  • クリックされたボタンが以前のボタンクリックと異なる場合に表示
  • クリックされたボタンが前にクリックされたものと同じ場合、および div が現在表示されている場合は非表示
  • クリックされたボタンが前にクリックされたものと同じ場合、および div が現在非表示の場合に表示します

現在、私はこれを持っています:

//$('#alert_area') = target div

$button = $('.button')

if ($button.attr('id') != $('#alert_area').attr('showing')){
    $('#alert_area').show()
}else{
    if ($('#alert_area').is(":visible")){
        $('#alert_area').hide(); 
    }else{
        $('#alert_area').show(); 
    }
}
$('#alert_area').attr('showing', $button.attr('id'))
4

1 に答える 1

1

わずかな改善ですが、elseブロックを に置き換えることができますtoggle。セレクターをキャッシュして整理することもできます。

 var $button = $('.button'), $alertArea = $("#alert_area");

 if ($button.attr('id') != $alertArea.attr('showing')) {
     $alertArea.show()
 } else {
     $alertArea.toggle();
 }

 $alertArea.attr('showing', $button.attr('id'));
于 2012-11-20T21:09:26.350 に答える