我正在编写一个通用函数,该脚本将在脚本的多个位置重用。
该函数使用ajax(使用jQuery库),所以我想以某种方式将一个函数(或代码行)传递给该函数以在ajax完成时执行。我相信这应该是一个回调函数,但是在阅读了一些回调答案之后,我仍然对如何实现这种情况感到困惑。
我当前的功能是:
function getNewENumber(parentENumber){ $.ajax({ type: "POST", url: "get_new_e_number.php", data: {project_number: projectNumber, parent_number: parentENumber}, success: function(returnValue){ console.log(returnValue); return returnValue; //with return value excecute code }, error: function(request,error) { alert('An error occurred attempting to get new e-number'); // console.log(request, error); } }); }
有了这个功能,我希望能够以与其他jQuery功能相同的方式来做某事,即:
var parentENumber = E1-3; getNewENumber(parentENumber, function(){ alert(//the number that is returned by getNewENumber); });
只需getNewENumber为函数提供另一个参数,然后将其用作回调即可。
getNewENumber
// receive a function -----------------v function getNewENumber( parentENumber, cb_func ){ $.ajax({ type: "POST", url: "get_new_e_number.php", data: {project_number: projectNumber, parent_number: parentENumber}, // ------v-------use it as the callback function success: cb_func, error: function(request,error) { alert('An error occurred attempting to get new e-number'); // console.log(request, error); } }); } var parentENumber = E1-3; getNewENumber(parentENumber, function( returnValue ){ alert( returnValue ); });