我有这个下面的代码。
function getGrades(grading_company) { if (grading_company == 'Not Specified') { // Remove grades box & show condition box showConditionBox(); } else { // 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 runAjax(loadUrl, dataString, callback) { jQuery.ajax({ type: 'GET', url: loadUrl, data: dataString, dataType: 'html', error: ajaxError, success: function(response) { callback(response); } }); }
编辑: 这是被称为回调函数的函数:
function showGradesBox(response) { // Load data into grade field jQuery('#grade').html(response); // Hide condition fields jQuery('#condition').hide(); jQuery('#condition_text').hide(); // Show grade fields jQuery('#grade_wrapper').show(); jQuery('#grade_text_wrapper').show(); }
现在,如果我想将grading_company变量作为参数传递给回调函数,是否有办法做到这一点而不必在runAjax调用中将其添加为另一个参数?我试图让该runAjax函数对其他用法开放,所以我不想传递任何额外的参数;但是如果它可以以某种方式包含在回调中,那就太好了。
grading_company
runAjax
将回调更改为匿名函数:
// Set the callback function to run on success var callback = function () { showGradesBox(grading_company); };
这使您可以将参数传递给内部函数。
编辑:允许ajax响应:
// Set the callback function to run on success var callback = function (response) { showGradesBox(grading_company, response); };