在Javascript / jQuery的循环结束时添加延迟

时间:2012-06-23 05:32:08

标签: javascript jquery settimeout

我想在likeMe()循环完成后添加5秒的延迟。一旦finsh我想触发点击Facebook的注销按钮。

当谈到javascript语义时,我很愚蠢;因此我不知道如何触发这一切?考虑到这一点,在循环结束后我将在何处/如何添加此效果:

我通常会在循环后使用.promise().done()执行最后的步骤,但我不知道如何将此$.delay(5000).promise().done( $('input[value="Log Out"]').click());放在javascript中。

背景:使用arudino,处理和& amp;创建一个装置艺术作品。 greasemonkey jQuery。

全文:

unsafeWindow.likeMe = likeMe;
function likeMe() 
{   

        input = document.getElementsByTagName("input");
        for(i = 0; i < input.length; i++) 
        {
            myID = input[i].getAttribute("data-profileid");
            if(myID != null && myID.indexOf("342584172457437") >= 0)
                input[i].click();
        }
        $.delay(5000).promise().done( $('input[value="Log Out"]').click()); 
        // this is wrong but yeah i have no clue where or how to put it on here.

}


$(window).load(function(){

    var isCtrl = false;
    document.onkeyup=function(e) {
        if(e.which == 17) isCtrl=false;
    }
    document.onkeydown=function(e){
        if(e.which == 17) isCtrl=true;
        if(e.which == 46 && isCtrl == true) {
            likeMe()

            return false;
        }
    }

});

2 个答案:

答案 0 :(得分:2)

您可以使用setTimeout之类的

function likeMe() 
{   

    input = document.getElementsByTagName("input");
    for(i = 0; i < input.length; i++) 
        {
            myID = input[i].getAttribute("data-profileid");
            if(myID != null && myID.indexOf("342584172457437") >= 0)
            input[i].click();
        }

   setTimeout(function() {
        $('input[value="Log Out"]').click();
   }, 5000);

}

onkeydown之内

document.onkeydown=function(e){
        if(e.which == 17) isCtrl=true;
        if(e.which == 46 && isCtrl == true) {
            likeMe();
            setTimeout(function() {
               $('input[value="Log Out"]').click();
            }, 5000); 
            return false;
        }
    }

但不能同时兼顾两者。

答案 1 :(得分:0)

像这样使用setTimeout()

setTimeout(function() {
    $('input[value="Log Out"]').click();
}, 5000);

在五秒钟内执行一项功能。