回叫执行但是来电者没有

时间:2016-02-09 19:19:56

标签: javascript jquery jquery-callback

我在ajax调用的成功响应中放置了以下jquery代码:

// Replace loading div with more posts button
loadingText.fadeOut(function(){
    moreButton.fadeIn();
});

在我的本地开发环境中,一切正常。但是,在我的qa服务器上执行相同的代码会导致moreButton淡入,但loadingText淡出。由于fadeIn()位于fadeOut()的回调中,我不确定fadeIn()是如何执行的,但fadeOut()不是。在{ajax调用之前} moreButtonloadingText都已定义好。

有人可以解释一下这里可能会发生什么,以及如何解决它?

编辑:这是更多代码。

// Show when more posts are loading
var loadingText = $(document.createElement('div'))
    .addClass('loading')
    .text('Loading...');
someDiv.append(loadingText);

// Click for more posts
var moreButton = $(document.createElement('button'))
    .addClass('more')
    .text('More Posts')
    .css({'display': 'none'});
someDiv.append(moreButton);

// Load posts when more posts button is clicked
moreButton.click(function(){
    loadArticles();
});

function loadArticles(){
    $.ajax({
        url: url,
        type: type,
        data:{data},
        success: function (html) {

           // Show preloaded posts
           $('.posts.hidden').removeClass('hidden');
           moreButton.fadeOut(function(){
               loadingText.fadeIn();
           });

           // Preload more posts in hidden div

           // Replace loading div with more posts button
           loadingText.fadeOut(function(){
                moreButton.fadeIn();
            });
        },
        error: function(html) {
            // Do something else
        }
    });
});

0 个答案:

没有答案