标签内的jQuery自动完成 - 在搜索后单击,创建孤立结果窗口

时间:2012-09-07 14:10:05

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

我在某些标签页面中有一个自动填充文本框。

请点击此处查看示例:http://jsfiddle.net/fTQ26/3/

请尝试以下步骤:

  1. 在文本框中输入“A”
  2. 之后立即点击其他标签之一
  3. 等几秒钟
  4. 您应该会看到最终出现孤立的自动填充结果框。

    确保不会发生这种情况的最佳方法是什么?

    (如果可能的话,我会感谢一个优雅的解决方案,因为实际发生的页面非常复杂!)

2 个答案:

答案 0 :(得分:1)

您可以绑定到open事件,如果该元素不可见,则关闭自动完成:

open: function (event, ui)
{
    if (!$(this).is(":visible"))
        $(this).autocomplete("close");                
}

更新了小提琴:http://jsfiddle.net/fTQ26/15/

答案 1 :(得分:1)

John Koerner是对的。但是,您还需要在单击其他选项卡后关闭自动填充功能。

 $( "#tabs" ).tabs({
     select: function(event, ui) {
         $( "#tags" ).autocomplete('close');
     }
 });

另外,如果您在第一个标签中等待,直到自动完成功能打开,之后转到另一个标签页,则自动填充功能仍然位于内容之上。

更新了小提琴:http://jsfiddle.net/fTQ26/16/