【问题标题】:jqueryui autocomplete stops firingjqueryui自动完成停止触发
【发布时间】:2011-10-05 12:59:05
【问题描述】:

我正在处理 jqueryui 自动完成 JSONP 示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp

即使在他们自己的演示中,我也设法使这个错误发生;不幸的是,我无法始终重现它。

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

这是一个已知的错误吗?在下一个版本中可能会修复一些东西?

编辑:将以下语句加粗,因为它是问题中最重要的部分,以回应有人否决原始内容:
有没有办法“重置”自动完成对象以便在这种情况下再次开始工作?当对象失去焦点时,我尝试再次运行我的 $("#foo").autocomplete(...) ,但这没有帮助。

谢谢!

【问题讨论】:

  • 为什么这被否决了?我很好奇是否有其他人遇到过这个问题。
  • 这很有趣。我有时会重复错误,有时不会。
  • 嗨,我也有像你一样的问题,但我可以始终如一地重现它。转到jqueryui.com/demos/autocomplete 并输入 java 然后按 ESC 键 SHIFT + HOME 并重新输入 java,第二次没有任何反应!

标签: jquery jquery-ui jquery-ui-autocomplete


【解决方案1】:

你可以这样做:

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

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

如果您的来源是 ajax 调用或方法,我建议将您的来源值保存在变量中

【讨论】:

  • 我确实尝试过这样的事情.. 几乎就是这样。而且它没有重新初始化控件。我可能会尝试专注于从 DOM 中完全删除控件并重新添加它,但这似乎是一个粗略的解决方案。
  • ..就像我说的,它是不一致的,我不确定当它发生时行星是如何对齐的。 :( 目前的情况对于概念验证来说已经足够好了,但对于生产代码来说还不够好。
猜你喜欢
  • 1970-01-01
  • 2015-02-11
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多