检查display:none时if语句不起作用

时间:2011-06-02 17:57:36

标签: jquery

$("table").everyTime(5000, function(){  

if(($("#morning").css("display")) != "none"){
    $("#morning").hide();
    $("#afternoon").show();
}else{
$("#morning").show();
    $("#afternoon").hide();
}

$.ajax({
    type: "GET",
    url: "sample.xml",
    dataType: "xml",
    success: parseXml
});

}, 0);

});

我的桌子早上开始是可见的,所以当我的if语句每5秒运行一次时它应该隐藏它然后使下一个表可见。当早晨不可见时,我希望它被设置为可见。

出于某种原因,看起来简单的if语句是行不通的。如果我摆脱了别的东西,它会隐藏早晨并显示下午。但是,当添加else时,没有任何事情发生。

2 个答案:

答案 0 :(得分:1)

请改用.is(':visible')。它可能不一定具有该属性。

if ($("#morning").is(":visible")) {
    $("#morning").hide();
    $("#afternoon").show();
} else {
    $("#morning").show();
    $("#afternoon").hide();
}

或者,如果在另一个可见的情况下始终隐藏一个,您也可以使用toggle()

$("#morning").toggle();
$("#afternoon").toggle();

答案 1 :(得分:0)

$("table").everyTime(5000, function(){  

  if($("#morning").is(':visible')){
    $("#morning").hide();
    $("#afternoon").show();
  } else {
    $("#morning").show();
    $("#afternoon").hide();
  }

  $.ajax({
    type: "GET",
    url: "sample.xml",
    dataType: "xml",
    success: parseXml
  });

}, 0);