jquery:在Windows加载后或指定时间后运行一个函数

时间:2013-08-03 02:19:36

标签: jquery

我希望在Windows加载后运行一个函数,但同时,它不应该超过6秒。换句话说,它应该在窗口加载后或6秒后(以先到者为准)进行修改。我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

我认为这会做你想要的。

function doSomething() {
    // do something
}

var timeout = setTimeout(doSomething, 6000);

$(window).load(function() {
    clearTimeout(timeout);
    doSomething();
});

答案 1 :(得分:1)

<body onload="myFunction()">

setTimeout()

请参阅http://www.w3schools.com/jsref/met_win_settimeout.asp

编辑:我没有看到你在jQuery中请求了这个。以下是示例的链接:http://jquerybyexample.blogspot.com/2012/02/how-to-use-jquery-settimeout-function.html

答案 2 :(得分:1)

y = 0;

function x() {
    alert('hi');
    y++;
}
func_x = setTimeout(x, 6000);
$(window).load(function () {
    if (y === 0) {
        clearTimeout(func_x);
        x();
    }
});

答案 3 :(得分:0)

您可以创建一个函数装饰器,它允许只运行一次的函数。

function DoOnce(what){
    var done = false, args = arguments.slice(1);

    return function(){
        if (!done) {
            done = true;
            what.apply(args);
        }
    };
}

然后您可以使用它,如下所示:

var handler = DoOnce(function(a){ alert(a);}, 1);
window.onload = handler;
setTimeout(handler, 6000);

答案 4 :(得分:0)

像这样:

function yourfunction(){
    //your code
}
var a = setTimeout( yourfunction, 6000);
window.onload = function(){
    if(a){ 
        clearTimeout(a); 
    }else{
        yourfunction();
    }
}