好的,我试图将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/