2011-01-18 13 views

答えて

9

自分の質問に既に答えているかのように見えます。私は誰かがそれを得たならば、より良い解決策に向かっている。私はこれをオートコンプリートスタートアップに追加しました。本質的には、開いているボックスを新しいオフセットに置き換えます。

open: function(event, ui) { 
    var autocomplete = $(".ui-autocomplete"); 
    var oldTop = autocomplete.offset().top; 
    var newTop = oldTop - autocomplete.height() - $("#quick_add").height() - 10; 

    autocomplete.css("top", newTop); 
} 
+0

あなたドン'event'と' ui'引数が関数内で使われていなければそれを使う必要はありません。また、ウィンドウのサイズを変更しても機能しません。 F12開発ツールを使用してテストすることができます。 –

16

jQuery UI Position utilityを使用できます。ここでの例は次のとおりjQueryのUIの

$(".ui-autocomplete").position({ 
    my: "left bottom", 
    at: "left top", 
    of: $("#quick_add"), 
    collision: "flip flip" 
}); 
+3

この例では '$("#quick_add ")とは何ですか?それはオートコンプリートボックスなのでしょうか? – Yuck

4

現在のバージョンは、上記位置ウィジェットと同じ特性を有する、オートコンプリートオプションと位置オブジェクトをウィジェット与えることができます。あなたはそれを使って好きなように提案リストを配置することができます。別の方法でmvonlintelの答え@置く

+0

私は同意します。オプションとして与えることが最も良い –

24

、ウィジェット宣言の提案メニュー位置設定:

$('selector').autocomplete(
{ 
    position: { my: "left bottom", at: "left top", collision: "flip" }, 
    . 
    . 
}); 
+0

私はこのように=) – Bryuk

+0

これは私のためには機能しません。 – Yuck

+0

これは私のために働く:) –

関連する問題