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