我在ajax调用的成功响应中放置了以下jquery代码:
// Replace loading div with more posts button
loadingText.fadeOut(function(){
moreButton.fadeIn();
});
在我的本地开发环境中,一切正常。但是,在我的qa服务器上执行相同的代码会导致moreButton
淡入,但loadingText
淡出。由于fadeIn()
位于fadeOut()
的回调中,我不确定fadeIn()
是如何执行的,但fadeOut()
不是。在{ajax调用之前} moreButton
和loadingText
都已定义好。
有人可以解释一下这里可能会发生什么,以及如何解决它?
编辑:这是更多代码。
// 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
}
});
});