jquery - 更改同步ajax时未定义的函数
问题描述
我正在将用于加载同步 ajax 请求的函数转换为 getDesign.php。getDesign.php 请求一些图像,然后使用 loadImages 函数将这些图像显示在屏幕上。
在改变之前,我有:
$d.ajax({
type: "POST",
url: "getDesign.php",
data: {design : 1234,
type: ""
},
dataType: "json",
async: false,
success: function(data) {
}
});
loadImages() { // loads images }
我现在尝试更改此设置,因为我了解异步部分现已弃用。逻辑应该仍然相同 - 即调用 ajax 函数,然后一旦它返回了某些内容,就调用 loadImages 函数。我无法弄清楚为什么当我加载脚本时函数“getDesign”会出现未定义。请有人可以看看我做错了什么?
var $d = jQuery.noConflict();
function loadImages()
{
// loads images
}
$d(document).ready(function() {
var getDesign = function() {
$d.ajax({
type: "POST",
url: "getDesign.php",
data: {design : 1234,
type: ""
},
dataType: "json",
success: function(data) {
}
});
};
getDesign().done(loadImages());
});
提前谢谢了!
解决方案
您的getDesign不返回承诺,最好返回未定义。添加一个回报就足够了:
var $d = jQuery.noConflict();
function loadImages()
{
// loads images
}
$d(document).ready(function() {
var getDesign = function() {
return $d.ajax({ // <----- RETURN HERE
type: "POST",
url: "getDesign.php",
data: {design : 1234,
type: ""
},
dataType: "json",
success: function(data) {
}
});
};
getDesign().done(loadImages);
});
另一个错误是在这一行:
getDesign().done(loadImages());
^^
将其更改为:
getDesign().done(loadImages);
.done()需要doneCallbacks而不是函数执行的结果。
推荐阅读
- mysql - 通过 case 语句从组中获取外键项的计数
- asana - 从 Asana 中的自定义字段自动导出数据
- php - 单击按钮时从主表值插入其他表
- c++ - SetFileAttributes 函数返回意外错误代码 ERROR_INVALID_PARAMETER
- python - 我如何使用 Python 访问 Json 的某个部分
- javascript - 列出组件功能
- arrays - Google电子表格:将唯一计数结果除以二
- php - PHP / BTC 处理用户 xfers
- python - Django 中 /13/download/ 的 NoReverseMatch
- php - 使用 WP_User 对象的简码