在Javascript中执行一段时间后的函数

时间:2013-03-28 14:57:24

标签: javascript html

我正在尝试编写一个用户脚本来隐藏页面中的某些元素。问题是元素在页面加载后几秒钟才出现,所以我试着用几秒钟的延迟来做。

这是我的代码:

function hide_stuff()
{
    var e = document.getElementsByClassName("tab");
    if(e) 
        alert("got elements");
    else 
        alert("didn't get elements");
    for( var i = 0; i < e.length; i++){
        if (!e[i].id)
            e[i].style.display = "hidden";
    }
}

setTimeout(hide_stuff(), 5000);

问题是它根本没有延迟。 “got elements”警报(我作为调试辅助工具添加)会在页面加载时立即触发。我看不出我做错了什么,虽然我确定它可能是显而易见的。

任何帮助?

1 个答案:

答案 0 :(得分:4)

更改

setTimeout(hide_stuff(), 5000);

setTimeout(hide_stuff, 5000);

您没有传递函数,而是立即调用它(并将undefined传递给setTimeout)。