Предисловие: у меня на странице есть jQuery и jQuery UI.
У меня определена эта функция:
function swap(sel) {
if (1 == 1) {
$(sel).hide('drop',{direction:'left'});
}
}
Как мне исправить часть (1 == 1), чтобы проверить, не скрыт ли элемент, а затем вернуть его, если это так. Я уверен, что это легко, но я новичок в jQuery.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, $(sel).toggle(); - это то, что вы ищете? Это лучший способ изменить видимость элемента.
Как сказали другие респонденты, toggle() - лучшее решение. Однако, если по какой-то причине вы не можете / не хотите использовать переключатель, и если ваш селектор предназначен только для одного элемента:
function swap(sel) {
if ($(sel).is(':visible')) { // Is this element visible?
$(sel).hide('drop',{direction:'left'});
}
}
Предостережение: Проверка: visible вернет ложное срабатывание, если элемент или любой из его родительских элементов - :hidden. Если это важно для вас, вы можете захотеть проверить это решение, который также пытается проверить это.
AFAIK, единственные эффекты переключения - это эффекты по умолчанию, которые должны исчезать и увеличиваться одновременно, и slideToggle, который сдвигает контент вниз с нулевой высоты на полную высоту. Скорость можно настроить так же, как и любую анимацию jQuery. Если вам не нужен ни один из них, вам придется анимировать вручную.
если вам не нравится toggle, это может вам помочь:
function swap(sel) {
if ($(sel).is(':visible')) {
$(sel).hide('drop',{direction:'left'});
} else {
$(sel).show('drop',{direction:'left'});
}
}
Мне нравится is (': visible'). Довольно ловко.
Будет ли переключаться эффект?