使用布尔值隐藏/显示元素

Aak*_*des 99 javascript jquery visibility underscore.js

我的代码中往往会有很多这些

if(shouldElementBeVisible)
    $element.show()
else
    $element.hide()
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方式与javascript,jquery或下划线打包?理想情况下,我想要的东西看起来像这样

$element.showOrHideDependingOn(shouldElementBeVisible)
Run Code Online (Sandbox Code Playgroud)

Aak*_*des 158

显然你可以将一个布尔值传递给toggle函数

$element.toggle(shouldElementBeVisible)
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用`$ element.toggle(!! shouldElementBeVisible)`来防止[意外碰到其他一个"重载"](https://jsfiddle.net/md944e08/),除非你当然非常确定variable是一个布尔值. (30认同)
  • 更好的选择可能是`$ element.toggle(shouldElementBeVisible == true)`. (7认同)

Zac*_*cer 13

就在这里!

$element.toggle();
Run Code Online (Sandbox Code Playgroud)

没有任何参数,toggle只需切换元素可见性(我不是指visibility属性)并依赖于元素的当前状态.

$element.toggle(display);
Run Code Online (Sandbox Code Playgroud)

如果toggle使用布尔参数调用,则显示元素,如果是true,hidden则显示元素false

资源

  • 我即将标记错误,然后我意识到最后一个API引用允许您设置布尔值而不是选项对象. (2认同)
  • 这实际上与我想要的相反.我想让元素的当前状态无关紧要.状态应该基于布尔变量. (2认同)