按顺序执行功能

时间:2012-04-16 11:01:53

标签: jquery function

我想按特定顺序执行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();
            });     
    }

提前致谢!

1 个答案:

答案 0 :(得分:1)

您只需要从nextPage980返回一个jquery对象。添加无条件return $(this);到最后。就目前而言,你在当前的返回值上调用queue,这是没有的(因此你的错误信息)。