jquery:在windows加载后或指定时间后运行函数

jquery:在windows加载后或指定时间后运行函数,jquery,Jquery,我想在windows加载后运行一个函数,但同时,运行时间不应超过6秒。换句话说,它应该在windows加载后或6秒后运行,以先到者为准。我该怎么做 <body onload="myFunction()"> 看 编辑:我没有看到您在jQuery中请求这个。下面是一个示例链接: 看 编辑:我没有看到您在jQuery中请求这个。下面是一个示例链接:我认为这将满足您的需求 function doSomething() { // do something } var timeout

我想在windows加载后运行一个函数,但同时,运行时间不应超过6秒。换句话说,它应该在windows加载后或6秒后运行,以先到者为准。我该怎么做

<body onload="myFunction()">

编辑:我没有看到您在jQuery中请求这个。下面是一个示例链接:


编辑:我没有看到您在jQuery中请求这个。下面是一个示例链接:

我认为这将满足您的需求

function doSomething() {
    // do something
}

var timeout = setTimeout(doSomething, 6000);

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

我想这会满足你的要求

function doSomething() {
    // do something
}

var timeout = setTimeout(doSomething, 6000);

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

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

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);

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

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);
像这样:

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

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

如果超时先运行,则解除绑定
$(window.load()
)是一个简单的修复方法。更好的修复方法是加快加载时间。是的,如果超时先运行,则解除绑定
$(window.load()
)是一个简单的修复方法。更好的解决方法是加快加载时间。