0

前言:我在一个页面上包含了 jQuery 和 jQuery UI。

我定义了这个函数:

    function swap(sel) {
        if (1 == 1) {
           $(sel).hide('drop',{direction:'left'});
        }
    }

如何修复 (1 == 1) 部分以测试该元素是否已隐藏,然后将其带回(如果是)。我确信这很容易,但我是 jQuery 的新手。

4

4 回答 4

3

如果您不喜欢toggle,那么这可能会对您有所帮助:

function swap(sel) {
  if($(sel).is(':visible')) {
    $(sel).hide('drop',{direction:'left'});
  } else {
    $(sel).show('drop',{direction:'left'});
  }
}
于 2008-12-30T20:28:08.040 回答
2

为什么不使用toggle()

例如:

function swap(sel) {
  $(sel).toggle();
} 
于 2008-12-30T18:34:59.533 回答
2

也许$(sel).toggle();是您正在寻找的东西?这是切换元素可见性的最佳方式。

于 2008-12-30T18:35:32.903 回答
2

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

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

警告: 如果元素或其任何父元素是 :visible 检查将返回误报:hidden。如果这对您很重要,您可能需要查看此解决方案,该解决方案也尝试检查其中的任何内容。

于 2008-12-30T20:27:58.090 回答