2011-10-05 125 views
3

我工作过jQueryUI的自动完成JSONP例子在这里:http://jqueryui.com/demos/autocomplete/#remote-jsonpjQueryUI的自动完成射击停止

即使是在自己的演示中,我已经成功地使这种错误发生;不幸的是我不能一致重现它。

如果我开始在文本框中键入内容,它会自动完成。
如果我不选择一个结果,然后“模糊”控件(专注于其他内容),然后返回到控件并重新开始输入,自动完成“源”函数(有时)再也不会再发生了,直到我刷新页面。 我已经通过将一些日志代码放入源代码函数来验证这一点;该函数刚停止被调用。 我无法确定它发生的确切情况。

这是一个已知的错误吗?下一个版本中可能正在修复某些内容?

编辑:粗体下面的语句,因为这是问题的meatiest部分,响应的人downvoting原文:
有什么办法“重置”自动完成对象,以便它开始再次合作这个案例?我试着在对象失去焦点时再次运行我的$(“#foo”)。autocomplete(...),但这没有帮助。

谢谢!

+2

为什么这个downvoted保存源值?我很好奇,如果有人遇到这个问题。 –

+1

这很有趣。我有时可以复制错误,其他时间不可以。 –

+0

嗨,我有一个像你这样的问题,但我可以一贯地重现它。转到http://jqueryui.com/demos/autocomplete/并键入java,然后按ESC键,SHIFT + HOME并重新键入java,第二次没有任何事情发生! –

回答

1

你可以做这样的事情:

$('input.autocomplete').live('focus',function(){ 

    $(this).autocomplete({ 
     ...your autocomplete options 
    }); 
}); 

如果你的来源是Ajax调用或方法,我建议在一个变量

+0

我确实尝试过这样的事情。并没有重新控制这个控制。我可能会尝试着重于从DOM中完全删除控件并重新添加它,但这似乎是一个粗略的解决方案。 – Josh

+1

..就像我说的那样,它是不一致的,我不确定这些行星在发生时究竟是如何对齐的。 :(对于概念验证,事物的当前状态已经足够好了,但对于生产代码来说还不够好。 – Josh