setTimeout()不能与onClick一起使用

BVC*_*AAV -1 html javascript timeout onclick

我有一个按钮(在apDiv126中),点击时显示图像(在apDiv129中)

<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>
Run Code Online (Sandbox Code Playgroud)

单击该按钮时,它应显示图像(使用toggle_div),然后执行时间功能:

这是时间函数:

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

时间的推移应使图像在2秒后消失.但是,当我尝试我的网页时,它甚至不显示图像.toggle_div正在工作,因为当我time('apDiv129');从onClick中删除时,会出现图像.

我也尝试在超时匿名函数中调用toggle_div,但它也不起作用.

我的问题是:onClick按给定的顺序执行函数?当我打开页面时,是否有可能超时开始"倒计时"?

Lug*_*101 6

第二个参数setTimeout是以毫秒为单位的时间,2000而是尝试.并回答你的问题:setTimeout从调用它的瞬间开始计数,而不是从页面加载时开始计数.(除非在onLoad事件处理程序中)