jQuery .toggle(showOrHide):实现问题

Jos*_*ach 0 jquery show-hide

我有一个按钮来切换引用的div是否可见.最初,我使用的是代码:

$('#search-options-btn').click(function() {
    if ($('#search-options').is('.hidden')) {
        $('#search-options').removeClass('hidden');
    } else {
        $('#search-options').addClass('hidden');
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,为了找到更干净的代码,我遇到了jQuery toggle()方法,根据API有一个方法实现

.toggle( showOrHide )    
showOrHide: A Boolean indicating whether to show or hide the elements.
Run Code Online (Sandbox Code Playgroud)

这个描述让我相信这是一个通过传递...标识符来显示或隐藏的快捷实现方法?showOrHide进入toggle()方法.

尝试这个:

$('#search-options-btn').click(function() {
    $('#search-options').toggle(showOrHide);
});
Run Code Online (Sandbox Code Playgroud)

在我的firebug控制台中产生错误:

showOrHide is not defined
[Break On This Error] $('#search-options').toggle(showOrHide); 
Run Code Online (Sandbox Code Playgroud)

我也试过定义showOrHide为初始化的布尔值false; 错误消失了,但问题并没有解决.

根据jQuery在线API,这应该相当于

if ( showOrHide == true ) {
  $('#foo').show();
} else if ( showOrHide == false ) {
  $('#foo').hide();
}
Run Code Online (Sandbox Code Playgroud)

除非我完全不知道它是如何工作的.任何人都可以填写我在这里做错的事吗?我找不到类似的实现.

Mat*_*att 6

你应该只需要toggle(),别的什么.

$('#search-options-btn').click(function() { $('#search-options').toggle(); });