如何使用可以将Params传递给的回调编写jQuery函数?

AnA*_*ice 0 javascript jquery

我有以下功能:

function loadProjects(pID) {

    $.ajax({
        url: myURL,
        success: function (dataJS) {###Run any supplied call back here####}
    });
}
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为loadProjects(1);

问题是我希望能够在成功后定义一个callBack函数,并且我想在loadProjects(1,pong(12))时包含它.我希望能够为回调提供参数.

如何让函数接受回调?如何将回调传递给该函数?

就像是

function loadProjects(pID, callback) {

    $.ajax({
        url: myURL,
        success: function (dataJS) {###Run any supplied call back here####}
    });
}
Run Code Online (Sandbox Code Playgroud)

我可以在哪里打电话:

loadProjects(22, pong(12))
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试这个时,pong(12)立即运行,而不是在loadProjects函数中调用时?

想法?谢谢

and*_*lzo 7

试试这个:

function loadProjects(pID, callback) {

    $.ajax({
        url: myURL,
        success: function (dataJS) {
           if ($.isFunction(callback))
              callback();
        }
    });

}

loadProjects(1, function() { pong(12); });
Run Code Online (Sandbox Code Playgroud)

要么:

function loadProjects(pID, callback, value) {

    $.ajax({
        url: myURL,
        success: function (dataJS) {
           if ($.isFunction(callback)) {
              if (value) {
                 callback(value);
              }else{
                 callback();
              }
           }

        }
    });

}

loadProjects(1, pong, 12);
Run Code Online (Sandbox Code Playgroud)

  • @ karim79在WebKit中也失败了...`typeof/regex/==='function'`:P(如果没有使用jQuery,我使用`callback instanceof Function`). (2认同)