1

一部のタブ内にオートコンプリートテキストボックスがあります。

例については、こちらをご覧ください:http: //jsfiddle.net/fTQ26/3/

次の手順を試してください。

  1. テキストボックスに「A」と入力します
  2. 直後に他のタブの1つをクリックします
  3. 数秒待ちます

孤立したオートコンプリート結果ボックスが表示されるはずです。

これが起こらないようにするための最良の方法は何ですか?

(これが行われている実際のページは非常に複雑なので、可能であればエレガントな解決策をいただければ幸いです!)

4

2 に答える 2

1

openイベントにバインドできます。要素が表示されていない場合は、オートコンプリートを閉じます。

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

更新されたフィドル:http://jsfiddle.net/fTQ26/15/

于 2012-09-07T19:09:38.533 に答える
1

JohnKoernerは正しいです。ただし、別のタブをクリックした後、オートコンプリートを閉じる必要もあります。

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

それ以外の場合、オートコンプリートが開くまで最初のタブで待機し、その後別のタブに移動すると、オートコンプリートはコンテンツの上に表示されたままになります。

更新されたフィドル:http://jsfiddle.net/fTQ26/16/

于 2012-09-07T19:31:17.683 に答える