好的,我试图将setInterval设置为子函数,并且没有使其进入那里...因此我的警报没有触发:

var doneVar= 0;
var groupsVar= 4;
var interval = setInterval(process_chunk, 1000);
var $myTree= $("#myTree");
var chunkLength = myArray.length / groupsVar;


process_chunk = function() {
    alert("we are after chunk");
    var arrayChunk = myArray.slice(doneVar*chunkLength, (doneVar + 1)*chunkLength);
    //alert("we are in function!!");
    $.each(arrayChunk,  function(key, item){
        $myTree.jstree("uncheck_node", "#"+item);
    });

    doneVar += 1;

    if (doneVar === groupsVar) {
        interval.clearInterval();
    }
}

最佳答案

当您将process_chunk传递给setInterval时,尚未为其分配值。移动线:

var interval = setInterval(process_chunk, 1000);


在将匿名函数分配给process_chunk之前(和之后):

doneVar += 1;


或者,如果您要提升函数,请使用函数声明而不是表达式:

function process_chunk() {


两种版本都可以解决您的问题。

关于javascript - Javascript setInterval没有使其起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18517666/

10-12 13:13