Если вы проверяете , существует ли что-то , , используйте .length
свойство .Свойство .length
содержит количество элементов, соответствующих селектору.
Наблюдайте этого jsfiddle , чтобы увидеть, что без использования .length
, вы всегда получите true
независимо от того, есть ли какой-то элемент или нет.
РЕДАКТИРОВАТЬ:
После переосмысления этого (вашего описания, вашего кода и того, что вы действительно хотите сделать)достигните) мое мнение таково, что ваш код должен выглядеть следующим образом (см. this jsfiddle ):
$('#plusexp').click(function() {
var $cols3 = $('.cols3');
if ($cols3.is(':visible')){
$('.cols4').show();
};
$cols3.show();
});
Причина этого:
вы показываете cols3
в любом случае, потому что:
- , если видны
cols3
и cols4
, вы показываете cols3
, - , если отображается только один, выпоказать этот элемент (если это
cols3
, вы показываете его, но если это cols4
, то отображение cols3
ничего не меняет),
cols4
отображается только тогда, когда cols3
отображается перед нажатием (если оба невидимы, отображается только cols3
),
лучше кэшировать элементы (вв этом случае есть только одна переменная: $cols3
),