2013-03-07 2 views
1

У меня есть divs (title). Когда я нажимаю, скажем div1, показывает субтитры. И когда я нажимаю другой div, давайте скажем div2, затем div1 шкур, а div2 показаны.JQuery if/else with show/hide

Что я хочу, когда я нажимаю div1, а затем снова нажмите div1, он прячется. В инструкции if/else вы можете видеть, что я пробовал.

Надеюсь, кто-то может помочь мне здесь.

$(document).ready(function() 
{ 
    $(".title").click(function() 
    { 
     var $element = $(this); 

     $(".open").removeClass("open"); 
     $('.subtitle').hide(500); 

     $element.toggleClass('open'); 
     $element.children('.subtitle').toggle(500); 

     if($(this).hasClass() == "open") 
     { 
      $element.children(".subtitle").hide(500); 
     } 
    }); 
}); 
+3

Можете ли вы показать соответствующий HTML-код? – HerrSerker

+1

Можете ли вы создать демо на http://jsfiddle.net/ –

ответ

1

$(this).hasClass() == "open" должен быть $(this).hasClass('open')

и внутри if ты не должен показывать субтитры вместо скрывать это?

+0

Спасибо, это сделало задание :) –

1

В этом случае правильный подход является Toggle.

Вы также можете проверить это Visibility/Hidden info.

Он охватывает, как вы могли бы проверить видимости CSS, отображение CSS, а также фактической видимости элемента. Из них вы можете выполнять любые стандартные условные заявления в зависимости от «скрытия» в вопросе. Некоторые могут работать лучше других в определенных обстоятельствах.