如何编写JQuery回调函数

时间:2014-05-15 11:24:38

标签: jquery jquery-callback

我的回调功能不起作用,我想在test()之后运行configReq()

$(document).ready(function() {
 configReq($(this).attr('href'), test);
});

var test = function() {
 alert('hi');
};

 function configReq(thisUrl) {
    $('.progress').empty();
    $('.progress').append('<div class="progress-bar bg-success" style="width: 0%; display: block;"></div>');            
}

请让我知道我哪里错了......?

4 个答案:

答案 0 :(得分:2)

似乎是同步的。

尝试,

$(document).ready(function() {
 configReq($(this).attr('href'));
 test();
});

OR

$(document).ready(function() {
     configReq($(this).attr('href'),test);
         });

function configReq(thisUrl,nextFunction) {
    $('.progress').empty();
    $('.progress').append('<div class="progress-bar bg-success" style="width: 0%; display: block;"></div>'); 
nextFunction();           
}

答案 1 :(得分:2)

像这样:

$(document).ready(function() {
    configReq('Some item', test);
});

function test() {
    console.log('Callback executed');
};

function configReq(thisUrl, callback) {
    console.log('Executing configReq');
    if (callback) callback();
}

DEMO

答案 2 :(得分:2)

要编写执行回调函数的函数,可以这样:

function doSomething(arg,callback) {
    // .....
    if (typeof callback === "function") {
        callback();
    }
}

<小时/> 所以你的代码是这样的:

<强>样本: http://jsfiddle.net/z7LDA/1/

HTML:

<a href="#foo">click me</a>

使用Javascript:

$(document).ready(function() {
    $("a").click(function(){
         configReq($(this).attr('href'), test);
    });
});

var test = function() {
    alert('hi');
};

function configReq(thisUrl,callback) {
    $('.progress').empty();
    $('.progress').append('<div class="progress-bar bg-success" style="width: 0%; display: block;"></div>');
    if (typeof callback === "function") {
        callback();
    }
}

答案 3 :(得分:1)

这是一个简单的回调函数:

$(document).ready(function() {
     configReq($(this).attr('href'), function(){
        alert('hi');
     });
    });

     function configReq(thisUrl) {
        $('.progress').empty();
        $('.progress').append('<div class="progress-bar bg-success" style="width: 0%; display: block;"></div>');            
    }