我正在使用 jquery ui 和 sortable,我想将其与更改事件上的 Ajax 调用结合起来:
$("#events").sortable({
change: function (event, ui) {
$.ajax({
type: "POST",
url: "/tasks/updateTaskUserPosition",
dataType: "json",
data: {
taskId: ui.item.data("task-id")
},
success: function (result) {
if (result == "error") {
alert("Not possible!");
return false;
}
}
});
}
});
如果 Ajax 成功满足条件,我希望更改事件返回 false(IE,重置位置更改),本质上我需要“爬行”回一个函数。我应该怎样做呢?
最佳答案
How should I go about doing this?
你不能(嗯,不合理)。 Ajax 调用是异步的。当 ajax 调用完成时,对 change
进行的 sortable 调用早已返回。
虽然您可以(目前)使 ajax 调用同步,但这通常不是一个好主意,因为它会在调用期间锁定浏览器的 UI。 jQuery 将在未来版本中删除 async
标志。
所以正确的做法是不要依赖change
中ajax调用的结果;以不同的方式解决问题(也许保存一些状态并在需要时恢复该状态)。
关于javascript - 在包含另一个函数的函数上返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18695212/