最佳答案
在你指给我看之前,是的,我已经回顾了关于这个主题的半打帖子,但是我仍然不知道为什么这不起作用。
我的目标是检测自动补全何时产生0个结果:
$.ajax({
url:'sample_list.foo2',
type: 'get',
success: function(data, textStatus, XMLHttpRequest) {
var suggestions=data.split(",");
$("#entitySearch").autocomplete({
source: suggestions,
minLength: 3,
select: function(e, ui) {
entityAdd(ui.item.value);
},
open: function(e, ui) {
console.log($(".ui-autocomplete li").size());
},
search: function(e,ui) {
console.log("search returned: " + $(".ui-autocomplete li").size());
},
close: function(e,ui) {
console.log("on close" + $(".ui-autocomplete li").size());
$("#entitySearch").val("");
}
});
$("#entitySearch").autocomplete("result", function(event, data) {
if (!data) { alert('nothing found!'); }
})
}
});
搜索本身工作良好,我可以得到的结果显示没有问题。据我所知,我 应该能够通过自动完成(“ result”)处理程序拦截结果。在这种情况下,它根本不会开火。(即使是一个通用的警报或 console. log,如果没有引用结果的数量,也不会触发)。打开事件处理程序显示正确的结果数(当有结果时) ,搜索和关闭事件处理程序报告的结果大小总是落后一步。
我觉得我漏掉了一些显而易见的东西但我就是看不到。