将回调函数传递给jQuery AJAX成功函数

我正在尝试传递一个函数,以便在AJAX调用成功时运行,但它不能正常工作,因为它说“回调不是函数”。

例:

来电代码:

getGrades(var); 

JS:

 function getGrades(grading_company) { // Set file to get results from.. var loadUrl = "ajax_files/get_grades.php"; // Set data string var dataString = 'gc_id=' + grading_company; // Set the callback function to run on success var callback = 'showGradesBox'; // Run the AJAX request runAjax(loadUrl, dataString, callback); } function showGradesBox(response) { // Code here... } function runAjax(loadUrl, dataString, callback) { jQuery.ajax({ type: 'GET', url: loadUrl, data: dataString, dataType: 'html', error: ajaxError, success: function(response) { callback(response); } }); } 

现在,如果我用函数名本身替换下面这行,它可以工作:

 callback(response); 

但我无法让它像上面那样从传入的参数中获取函数名称。

showGradesBox是代码中的一个字符串。 所以你有两个选项来执行回调函数:

如果你想保留你可以使用的字符串

 this[callback](response); 

(如果callback是在全局范围内定义的,你也可以使用window[callback](response);

或者您可以直接传递函数:

 var callback = showGradesBox; 

(在这种情况下,您可以保留现有的代码以执行回调)