【问题标题】:setTimeout() not working with onClick [closed]setTimeout() 不适用于 onClick [关闭]
【发布时间】:2014-04-19 16:55:00
【问题描述】:

我有一个按钮(在 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>

当按钮被点击时,它应该显示图像(带有toggle_div),然后执行时间函数:

这是时间函数:

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

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

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

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

【问题讨论】:

标签: javascript html onclick timeout


【解决方案1】:

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

【讨论】:

  • 它现在可以工作,这就是问题所在,我在某处读到时间以秒为单位,所以我认为它与此无关。非常感谢:D
【解决方案2】:

Timeout 函数接受以毫秒为单位的时间... 设置 2000 而不是 2...

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

【讨论】:

  • 这就是问题所在,谢谢 :D
猜你喜欢
  • 1970-01-01
  • 2015-07-02
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2019-03-14
  • 1970-01-01
相关资源
最近更新 更多