我试图传入一个函数,以便在 AJAX 调用成功时运行,但是它不起作用,因为它说“回调不是函数”。
Example:
调用代码:
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);
(if callback
是在全局范围内定义的,您也可以使用window[callback](response);
或者您可以直接传递该函数:
var callback = showGradesBox;
(在这种情况下,您可以保留现有代码用于回调执行)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)