2011-06-02 77 views
0
$("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语句,不起作用。如果我摆脱其他,它会隐藏早上,并显示下午。但是,当添加其他的时候,什么也没有发生。

+0

你有没有检查什么价值'$( “#早晨”)。CSS( “显示”)'**确实有**如果它不是 “无”? – Niklas 2011-06-02 17:59:58

+0

你确定你的#morning元素没有被父母隐藏:display:none? – tomfumb 2011-06-02 18:13:19

+0

什么是可见和显示?如果我早晨没有属性,当我使用hide()或show()时会添加什么? – Adam 2011-06-02 18:18:16

回答

1

改为使用.is(':visible')。它可能不一定具有这个属性。

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

另外,如果一个总是隐藏当对方是可见的,你也可以使用toggle()

$("#morning").toggle(); 
$("#afternoon").toggle(); 
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); 
+0

你正在做与OP想要的相反。这将永远不会进入其中一个块。 – BalusC 2011-06-02 18:14:31

+0

@BalusC - 感谢您指出。代码更新 – devmatt 2011-06-02 18:18:51

+0

可见不适用于我...如果我拿出其他的作品。 else else – Adam 2011-06-02 18:29:32