2016-11-30 71 views
0

我在Android應用程序中使用Cordova,Kendo ui和leafletjs地圖。當我打開一個特定的視圖時,我想要做的是得到一個div,等待三秒鐘,然後隱藏div。這應該很簡單,但無論我放入超時的時間長短,div總是顯示並立即消失。我首先嚐試使用Jquery展示並隱藏起來,但後來發現使用Phonegap添加和刪除類更好。科爾多瓦 - setTimeout與匿名函數立即發射

JS:

utils.hideLoading();  // calls kendo hideLoading function 
$("#myDiv").removeClass("opacityOff"); 
$("#myDiv").addClass("opacityOn"); 
setTimeout(function(){ 
    $("#myDiv").removeClass("opacityOn"); 
    $("#myDiv").addClass("opacityOff"); 
}, 3000); 

CSS:

#myDiv.opacityOff{ 
    display:none; 
    opacity:0; 
} 

#myDiv.opacityOn{ 
    display:block; 
    opacity:1; 
}  

#myDiv{ 
    width: 11em; 
    height: 11em; 
    position: relative; 
    margin: 50% auto 0 auto; 
    margin: 32vh auto 0 auto; 
    background-color:#000000; 
    border-radius:50%; 
} 

爲什麼會setTimeout的立即執行此匿名函數?

我在想這與單張重新呈現有關,但我不明白它足夠確定。

回答

0

通過在我的OpacityOn類中添加z-index:999;來解決這個問題。這讓我感到困惑,因爲div出現了一秒鐘,我認爲如果z-索引是它根本不會出現的問題。它看起來像傳單地圖重新繪製時,它給自己一個更高的Z指數。不完全理解爲什麼,如果有更多知識的傳單的人想澄清感覺自由。