0

我还是个 jQuery 新手,但我能够配置 jQuery UI 并在我的搜索框上实现自动完成功能。但是,我一直遇到一些问题。有时,自动完成功能会中断,导致搜索框本身消失。Firebug 告诉我该操作正在中止并且没有收到响应。

Firebug 控制台错误

这些错误没有明显的模式,下次我尝试使用相同的术语时,我怀疑这是一个数据问题。主要问题是这会导致搜索框从页面中完全消失,直到页面刷新。有没有办法至少阻止这种情况发生?如果需要,我很乐意提供更多信息。

$(document).ready(function($){
  $('.search').each(function(){
    var self = $(this);
    self.autocomplete({source: "/products/autocomplete"});
  });
});
4

2 回答 2

0

查看 Pedro 发布的链接,这个答案看起来是一个很好的起点: Firebug 1.5 shows 200 Aborted for Ajax requests

为了进一步调试,我还建议换行

self.autocomplete({source: "/products/autocomplete"});

尝试使用执行 console.log 或警报的 catch。您是否在 Firebug 的控制台日志中看到任何有关 javascript 错误的信息,或者只是 http 中止?在 try 中包装该行可能是一种很好的模式,可以潜在地防止网络错误在页面生命周期的剩余时间里破坏该控制。

于 2012-05-16T19:16:21.207 回答
0

奇怪的是,当我尝试使用 Firebug 的搜索框时,我在 firebug 本身(firebug 1.9)中看到了完全相同的“消失”行为。{[区分大小写],[上一个],[下一个]}弹出窗口出现并在我单击搜索框获得焦点后立即消失,在弹出窗口消失的同时散焦光标。这可以防止使用搜索框。

但是,我确实有一个解决方法:多次单击,偶尔会非常快地弹出弹出窗口而不会消失。一旦我可以让弹出窗口停留,我就可以在搜索框中输入文本。但是,当我将注意力集中在其他地方时,弹出窗口消失了,因此很难单击 [Next] 以获取下一次出现的搜索字符串。同样,快速单击也是一种解决方法!

我无法在 Chrome 的调试器中复制它。

于 2012-06-02T23:32:02.943 回答