Javascript jQueryUI—一个交换函数,通过选择器隐藏和取消隐藏元素

Javascript jQueryUI—一个交换函数,通过选择器隐藏和取消隐藏元素,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,前言:我将jQuery和jQueryUI包含在一个页面中 我定义了这个函数: function swap(sel) { if (1 == 1) { $(sel).hide('drop',{direction:'left'}); } } 如何修复要测试的(1==1)部分,以查看元素是否已隐藏,如果已隐藏,则将其恢复。我相信这很容易,但我对jQuery是新手。为什么不使用 例如: function swap(sel) { $

前言:我将jQuery和jQueryUI包含在一个页面中

我定义了这个函数:

    function swap(sel) {
        if (1 == 1) {
           $(sel).hide('drop',{direction:'left'});
        }
    }
如何修复要测试的(1==1)部分,以查看元素是否已隐藏,如果已隐藏,则将其恢复。我相信这很容易,但我对jQuery是新手。

为什么不使用

例如:

function swap(sel) {
  $(sel).toggle();
} 

可能是
$(sel).toggle()是你要找的吗?这是切换元素可见性的最佳方法。

正如其他回答者所说,
toggle()
是最佳解决方案。但是,如果出于某种原因,您不能/不想使用切换,并且您的选择器仅用于一个元素:

function swap(sel) {
    if ($(sel).is(':visible')) {  // Is this element visible?
       $(sel).hide('drop',{direction:'left'});
    }
}

警告:如果元素或其任何父元素是
:隐藏的,:visible检查将返回假阳性。如果这对您很重要,您可能还想知道哪些尝试检查这些内容。

如果您不喜欢切换
,那么这可能会帮助您:

function swap(sel) {
  if($(sel).is(':visible')) {
    $(sel).hide('drop',{direction:'left'});
  } else {
    $(sel).show('drop',{direction:'left'});
  }
}

切换会产生效果吗?好的,唯一的切换效果是默认效果,即同时淡入和增长,以及滑动切换,将内容从无高度向下滑动到全高度。可以像任何jQuery动画一样配置速度。如果你不想要其中任何一个,你必须手动设置动画。我喜欢is(“:visible”)。相当圆滑。