2012-12-20 106 views
0

我正在使用一個應用程序,在jquery點擊事件中執行兩個步驟。 1.使用精靈和顏色屬性更改元素的CSS屬性 2.運行迭代掃描頁面的函數。有一個函數在功能中改變DOM

是否有可能使頁面更改並在瀏覽器中顯示它,然後運行迭代?

css的變化是通過添加類和刪除類的元素。

onBtn.click(function(event){ 
    if(clicked['mon'] == 0){ 
     monBtn.attr("class", "active"); 
     clicked['mon'] = 1; 
     dow['mon'] = 1; 
    } 
    else { 
     monBtn.removeClass("active"); 
     clicked['mon'] = 0; 
     dow['mon'] = 0; 
    } 
     checkIfButtonsAreClicked(); 
}); 
+3

是的,這是可能的。但是你有關於你現有的代碼的問題嗎?如果是這樣,請張貼它,否則,請修改您的問題以獲得更具體的內容。 –

回答

1

如果你正在尋找的屏幕上運行一些其他的代碼之前更新,你可以設置代碼火在0毫秒:

makeCSSChanges(); 
setTimeout(function() { 
    // The browser will only run this callback once it's taken a breath and 
    // done its usual behind-the-scenes stuff. 
    scanThePage(); 
}, 0); 

當超時時間設置爲0毫秒,大多數瀏覽器會做他們平常的行爲(重新繪製頁面,開始他們的業務等),然後負責預定的事件。

但是在大多數情況下,延遲不會引人注目。如果延遲顯着,那麼我們正在接近也可能滯後於整個瀏覽器的那種延遲。小心。

+0

這只是部分工作..我必須添加30而不是0作爲首先改變CSS的參數。 – RyanDawkins

相關問題