jQuery回调无法按预期工作

时间:2015-08-21 09:13:22

标签: javascript jquery callback

我有两个应该一个接一个地运行的功能。我在第一个实现回调,但看起来像这个函数里面的东西(我认为getJSON或forEach)正在搞乱....这里是代码:

function one (param1, param2, callback)
{
     ...
     $.getJSON(...function(data){});
     my_array.forEach(function(item){...});
     if(callback) callback();
}

function two ()
{
    ...
}

然后我用这种方式调用函数:

one(value1, value2, two)

当我这样做时,我注意到我的函数二正在使用一些尚未被函数1处理的值.... 我可以把函数二放在getJSON的回调中,但我必须让forEach执行两次....

我做错了什么?

编辑:

var next = function (item, id) {
item = item.substr(2);
item = item.substr(0, item.length - 2);

        $('#popup_generate').html(item + ' <input type="text" id="question_answer" name="question_answer"><br><br><button class="close">Valider</button>');
        $('#popup_generate').fadeIn().css({'width': 400});

        $('body').append('<div id="fade"></div>');
        $('#fade').css({'filter': 'alpha(opacity=70)'}).fadeIn();
        $('.close, #fade').click(function () {
            answer = $('#question_answer').val();
            inputText = inputText.replace('[[' + item + ']]', answer);
            tinyMCE.activeEditor.setContent(inputText);

            if(++id < resultArray.length) {next(resultArray[id], id);} else {$('#fade , .popup_block').fadeOut(function () {$('#fade, .close').remove();});}
        });

    };
    next(resultArray[0], 0);

0 个答案:

没有答案