我希望在成功调用ajax后启动一个函数。我现在做的是这个
function ajaxCall(url, types, next) {
$.ajax({
url: url,
type: 'POST',
beforeSend: function () {
$("#plaatsMelding").append("<div id=\"" + types + "verwerkt\"><div class=\"progress-label\">" + types + " verwerken...</div></div>");
},
success: function (data) {
$('#plaatsMelding').empty();
$("#plaatsMelding").append("<div id=\"" + types + "verwerkt\"><div class=\"progress-label\">" + data + "</div></div>");
//run next script
if (next.length) {
alert(next);
next(); //this won't work because it will search for the next() function
}
}
});
}
我使用此功能启动此功能:
function saveRace() {
ajaxCall("verwerkRace.php", "race", "savePlayers");
}
所以当该功能准备就绪时,我希望它运行“savePlayers”功能。我怎么能这样做?
function savePlayers() {
ajaxCall("verwerkPlayers.php", "players");
}
答案 0 :(得分:3)
不传递字符串,传递函数:
function saveRace() {
ajaxCall("verwerkRace.php", "race", savePlayers);
}
然后在success
中,您可以执行此操作:
if (next) {
next();
}
答案 1 :(得分:2)
只需传递函数本身:
function saveRace() {
ajaxCall("verwerkRace.php", "race", savePlayers);
}
JavaScript不知道将字符串转换为要调用的函数。
答案 2 :(得分:0)
根据建议,传递函数而不是字符串
function saveRace() {
ajaxCall("verwerkRace.php", "race", savePlayers);
}
成功之后,您可以检查以确保您正在传递函数,然后将其激活:
if (next && typeof(next) === 'function') {
next();
} else {
console.error('Error firing the callback!');
}