Jquery可见性切换不起作用

时间:2011-12-15 02:38:41

标签: jquery visibility

只是一个简单的问题,有人可以告诉我这出错的地方,我正在尝试切换课程的可见性,但我无法恢复其可见性。隐藏它很好:

if($(".ball").is(':visible') == true) { 
   $(".ball").css({ 'visibility': 'hidden'}); 
} else { 
    $(".ball").css({ 'visibility': 'visible'}); 
}

我无法使用切换,因为我需要保留但不被看到的类,切换会混乱格式化。

帮助会很棒,谢谢。

4 个答案:

答案 0 :(得分:6)

选择器“:visible”不适用于可见性,仅适用于显示

以下是jQuery文档http://api.jquery.com/visible-selector/

的一个片段
具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍然占用布局中的空间。在隐藏元素的动画期间,该元素在动画结束前被视为可见。在显示元素的动画期间,该元素在动画开始时被视为可见。

试试这个:

if($(".ball").css("visibility") == "visible") { 
    $(".ball").css({ 'visibility': 'hidden'}); 
} else { 
    $(".ball").css({ 'visibility': 'visible'}); 
}

以下是http://jsfiddle.net/eGVWM/2/

的示例

答案 1 :(得分:2)

您可以选择ball类的所有元素,然后确定它隐藏的位置:

$(".ball").each(function() {
    var ball = $(this);
    if (ball.css("visibility") === "hidden")
        ball.css("visibility", "visible");
    else
        ball.css("visibility", "hidden");
});

答案 2 :(得分:1)

$(".ball").toggle();也会切换,但会使用display:none

答案 3 :(得分:0)

if($(".ball").is(':visible') == true) { 
  $(".ball").hide();
 };

可能不是你想要的,但它会隐藏'ball'类

的元素