在jquery中调用一个函数

时间:2016-10-19 12:37:48

标签: javascript jquery

我有一个jquery每个函数。我在调用一个函数。只有当前一个元素的这个函数完成时,才应调用每个函数内部的函数。

function x(t){
    var a = something;

    $.each(a, function(index,value){
        y(this);
    });
}

function y(t){
    $.ajax({

    }).done(function(r){
        if(r.success){                 
                     }
        else{
        }

     });

    // This function should be called for the second element 
    // in the each function only if its completed for the first element.
}

2 个答案:

答案 0 :(得分:5)

$.each是同步函数,所以下一次迭代只在当前一次完成时发生(包括调用和执行y(this),除非里面有异步操作)

使用Ajax执行:
使用递归模仿循环。

var currentIndex = 0;

function x(t) {
    if (currentIndex >= something.length) {
        return;
    }

    $.ajax({
       url: '',
       data: something[currentIndex],
       success: function () {
           currentIndex++;

           x(t);
       }
    });
}

答案 1 :(得分:0)

如上所述,此功能同步运行,因此,当第2项到达时,它已经由第1项完成。

这是一个例子,但其他情况是y函数运行异步,但是你没有指定no?

function x(t){
    var a = ["one", "two", "tree"];

    $.each(a, function(index,value){
        y(this, index);
    });
}

function y(t, index){
    // This function should be called for the second element 
    // in the each function only if its completed for the first element.
    console.log(index + " "+ t +" => running in y")
}
x("")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>