2014-04-19 50 views
-1

我有一個按鈕(在apDiv126)點擊它時,示出了圖像(這是在apDiv129)的setTimeout()不與的onClick

<div id="apDiv126"style="display:none"><input name="Yep" type="image" src="accept.png" onClick=toggle_div('apDiv129');time('apDiv129');"></div> 

<div id="apDiv129"style="display:none"><img src="request confirmed.png" width="370" height="215"></div> 

當按鈕被點擊它應該顯示的圖像(toggle_div工作),然後執行時間功能:

這裏的時間功能:2秒後

function time(id) { 
    var divelement = document.getElementById(id); 
    setTimeout(function(){ 
     divelement.style.display = 'none' 
    }, 2); 
} 

的時間溫控功能應該使圖像disapear。但是,當我嘗試我的網頁時,它甚至不顯示圖像。 toggle_div正在工作,因爲當我從onClick中刪除time('apDiv129');時,圖像出現。

我也試過在超時匿名函數中調用toggle_div,但它不起作用。

我的問題是:onClick按給定的順序執行函數?打開頁面時是否有可能超時開始「倒計時」?

+0

https://developer.mozilla.org/en/docs/ Web/API/window.setTimeout – PeeHaa

回答

6

setTimeout上的第二個參數是以毫秒爲單位的時間,請嘗試使用2000。並回答你的問題:setTimeout從它被調用的時刻開始計數,而不是從頁面加載時開始計數。 (除非onLoad事件處理程序中)

+1

它現在起作用了,那就是問題所在,我在某處讀到時間在幾秒鐘內,所以我認爲它與此無關。非常感謝:D – BVCGAAV

2

超時函數接受以毫秒爲單位的時間... 設置2000,而不是2 ...

function time(id) { 
    var divelement = document.getElementById(id); 
    setTimeout(function(){ 
    divelement.style.display = 'none' 
    }, 2000); 
} 
+0

這就是問題所在,謝謝:D – BVCGAAV