setTimeout不起作用

时间:2014-04-29 16:46:30

标签: javascript css onclick

我已经制作了一个带有id"关于"使用 display:none 并编写了此脚本:

function showbox() {
    document.getElementById('about').style.display="block"
};

并将该函数作为事件添加到另一个div:

<div class="button" onClick="slide();setTimeout(showbox(),3000)">About</div>

这样当用户点击带有&#34;按钮&#34;的div时id为#34;关于&#34;将在3秒后出现,代码与显示部分一起工作,但它不会延迟任何事情! 注意:功能幻灯片()存在且运行良好,并且不会干扰任何事情,所以不要质疑。

请告诉我出了什么问题。 感谢。

3 个答案:

答案 0 :(得分:3)

更好的方法论:分离关注点。内联javascript是不好的做法。只是我们一个事件听众!

var element; //grab element however you want
element.addEventListener("click",function() {
    slide();
    setTimeout(showbox,3000);
},false);

正如其他人所说,您需要将函数引用传递给超时。让()立即调用该函数。

答案 1 :(得分:2)

showbox就是你所需要的。删除()

答案 2 :(得分:2)

// You are *calling* showbox() here -- not passing the function ref as a parameter.
// Use this instead.

<div class="button" onClick="slide();setTimeout(showbox,3000)">About</div>