2010-10-13 118 views
0

我在我的網站上使用jQuery UI的自動完成功能,它工作正常,但我正在重新設計系統,所以我需要對此進行更改。目前,自動完成在輸入的底部打開。然而,我不能強制它到一個自定義的位置,無論是jQuery或CSS。強制jQuery UI自動完成移動?

我已經試過這樣:

$('#search').autocomplete('widget').css({ 
     'margin-left': -200 
     //or 
     left: 200 
    }); 

我也嘗試添加到裏邊反規則很重要,但沒有影響!

我也嘗試添加CSS到.ui-autocomplete,沒有任何結果。

看來盒子打開時會覆蓋所有這些變化。對此有何想法?我真的需要一個解決方案。

感謝, 馬爾蒂·萊恩

+0

這不會解決你的問題,但對於其未來的很好的瞭解,保證金左是marginLeft在jQuery的的CSS() - @ hereticalself – ngmir 2010-10-13 19:13:09

回答

1

可以提供開放的可選功能()來做到這一點:

例子:

$("#search").autocomplete({ 
          open: function(event, ui) 
            {$(this).next().css('left', 
            function(index, value) {return 200+parseInt(value)}); 
            } 
    }); 

...將位置設置爲200像素左右它的位置通常是

+0

作品,只是修改了選擇像這個:$('#search')。autocomplete('widget')。css(); – 2010-10-14 13:27:58

+0

永遠不會使用'parseInt(foo)'。總是使用'parseInt(foo,10)'(假設你正在處理base10,你就是這樣) – 2012-06-13 18:29:17

1

我的自動完成在DOM結束時打開。完全不關閉觸發輸入... 我在考慮觸發輸入的索引,然後找到自動完成的相應索引,但我不知道爲什麼 - 它對我來說似乎不夠健壯。

+0

同樣發生在我身上,根據$(this).next()看起來真的很脆弱。 – 2012-06-13 18:17:29

0

和NeoSwf一樣,我發現我的自動完成插入到DOM底部附近。根據$(this).next()發現它很脆弱。我建議使用更具體的東西,如'ul.ui-autocomplete',而不是this。下面是CoffeeScript的對我的版本:

jQuery -> 
    $('#search').autocomplete 
    open: (event, ui) -> 
     $('ul.ui-autocomplete').css('left', (index, value) -> 
     return 200 + parseInt(value))