2011-06-02 75 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