我刚刚升级到jQuery 1.10.x,除了几个小的方法更改外,一切都按计划进行,但Ajax除外:
function get_folders_hierarchy_manual (object_folders) {
$.ajax({
url: base_url + "path/" + object_folders.child,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (element) {
if (element!=null) {
for (var i=0;i<element.length;i++) {
// Do things.
}
} else {
// Do something else.
}
}
});
}
以前,当没有从数据源返回数据时,会触发“执行其他操作”部分。但是,自升级以来,这不再评估为空。
我甚至尝试使用error参数作为成功的辅助手段,但这也没有做任何事情。
我在元素表达式上设置了一个监视,并且在查询之间没有清空。说实话,我不知道它事先做了什么,因为我没有理由去看!
有什么想法吗?
为了清楚起见,element是一个对象数组,它总是计算为true;有一个长度和包含对象。
答案 0 :(得分:0)
尝试数据真实化
success: function (element) {
if (element) {
for (var i=0;i<element.length;i++) {
// Do things.
}
} else {
// Do something else.
}
}
答案 1 :(得分:0)
最后,它是删除条件和添加错误参数的组合:
function get_folders_hierarchy_manual (object_folders) {
$.ajax({
url: base_url + "path/" + object_folders.child,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (element) {
for (var i=0;i<element.length;i++) {
// Do things.
}
},
error: function () {
// Do something else.
}
});
}