В моем коде их много
if(shouldElementBeVisible)
$element.show()
else
$element.hide()
Есть ли более элегантный способ упаковки с помощью javascript, jquery или подчеркивания? В идеале я хочу что-то вроде этого
$element.showOrHideDependingOn(shouldElementBeVisible)
javascript
jquery
underscore.js
visibility
Аакил Фернандес
источник
источник
toggle
, но это другой вопросОтветы:
По-видимому, вы можете просто передать логическое значение
toggle
функцииисточник
$element.toggle(!!shouldElementBeVisible)
чтобы предотвратить случайное попадание в одну из других «перегрузок» , если, конечно, вы не уверены, что переменная является логическим значением.$element.toggle(shouldElementBeVisible == true)
."0"
и"false"
обрабатываются совсем иначе, чем вfalse
любом случае, поэтому я не думаю, что это различие действительно имеет значение - даже0
было бы неверным, если бы вы хотели, чтобы оно было скрыто, поскольку все эти значения времени анимации установлены, но все же отражают видимость.Да, есть!
Без параметров
toggle
просто переключает видимость элементов (я не имею в видуvisibility
свойство) и зависит от текущего состояния элемента.Если вы вызываете
toggle
с логическим параметром, элемент отображается, если он есть,true
иhidden
если онfalse
источник
источник
isShown
не имеет отношения к тому, чтобы$element
быть видимым, или нет? Но отдельная переменная, не относящаяся к элементу?isShown
во что-то вроде,shouldElementBeVisible
чтобы сделать это более очевиднымjQuery имеет
toggle
: http://api.jquery.com/toggle/$element.toggle();
Это покажет элемент, если он скрыт, и скроет его, если он отображается.
источник
Функция
.toggle()
изменяетdisplay
значение элемента.Если вы хотите изменить
visibility
, я бы предложил использовать?:
оператор. Для этого в вашем CSS установите видимость в исходное состояние, а в JS просто поместите:источник