我想按特定顺序执行3个函数,我这样做:
function nextPage() {
var loading_temp = $('#loading_temp');
loading_temp.show()
.queue(function() {
nextPage980()
.queue(function() {
loading_temp.hide();
$(this).dequeue();
});
$(this).dequeue();
});
}
'#loading_temp'显示然后函数执行,但最后一个函数(隐藏加载gif)不执行!
Chrome会出现此错误:未捕获的TypeError:无法调用未定义的方法'queue'
nextPage980()函数是这样的:
function nextPage980() {
var ajax_heading = $('#ajax_heading');
var cur_heading = $('#cur_heading');
var temp_heading = $('.temp_heading');
var temp_heading_first = temp_heading.filter(':first');
var loading_temp = $('#loading_temp');
var htmlHeader = "Εγκαταστάσεις";
ajax_heading.attr('class', 'next_temp');
cur_heading.css({'margin-right' : '20px'}).after('<div id="cur_heading" class="temp_heading" data-tempPos="2"><h1 class="page_heading"><span class="heading_span">' + htmlHeader + '</span></h1></div>')
.queue(function() {
ajax_heading.animate({'margin-left' : '-1000px'}, 1000, 'easeInExpo')
.queue(function() {
temp_heading_first.remove();
cur_heading.removeAttr('style');
ajax_heading.attr('class', 'cur_temp').removeAttr('style');
$(this).dequeue();
});
$(this).dequeue();
});
}
提前致谢!
答案 0 :(得分:1)
您只需要从nextPage980
返回一个jquery对象。添加无条件return $(this);
到最后。就目前而言,你在当前的返回值上调用queue
,这是没有的(因此你的错误信息)。