将true/false传递给slideToggle()

Loc*_*rde 13 jquery

在jQuery中,我知道我们可以传递truefalse赋值给函数以toggle查看元素.我无法slideToggle做同样的事情.有什么帮助吗?

例如,而不是:

if (true)
    $('something').slideDown();
else
    $('something').slideUp();
Run Code Online (Sandbox Code Playgroud)

我真的想做类似的事情:

$('something').toggle(myBoolValue);
Run Code Online (Sandbox Code Playgroud)

但我想这样做slideToggle.

看看我的jsfiddle的例子,知道我想要做什么.

那可能吗?

Sha*_*oli 18

slideToggle可选地需要2个参数duration,callback因此传递true/false以显示/隐藏将不起作用.您可能必须编写自己的插件来实现此逻辑.像这样的东西

$.fn.mySllideToggle = function(show){
   if(show){
      $(this).slideDown();
   }
   else{
      $(this).slideUp();
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 我确实想到了这一点,但我不愿意相信没有更简单的东西......哦 (2认同)

小智 5

更新:显然有一个增强请求,为了一致性的缘故添加此功能,但他们投票反对它:票#10491


Art*_*újo 5

这很简单:

$.fn.slideToggleBool = function(bool, options) {
  return bool? $(this).slideDown(options) : $(this).slideUp(options);
}
Run Code Online (Sandbox Code Playgroud)

享受!

  • 额外的 `$(...)` 是不必要的。 (2认同)