2011-01-18 11 views

risposta

9

Sembra che sia già stato in grado di rispondere alla mia stessa domanda. Sono aperto a una soluzione migliore se qualcuno lo ha capito. Ho aggiunto questo all'avvio del completamento automatico .. essenzialmente esso riposiziona la casella su un nuovo offset aperto.

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

È don 'necessario usare gli argomenti 'event' e' ui' se non è usato nella funzione. Inoltre, non funziona se ridimensiona la tua finestra. È possibile utilizzare gli strumenti di sviluppo F12 per testarlo. –

16

È possibile utilizzare il jQuery UI Position utility. Ecco un esempio:

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

Cosa significa '$ (" # quick_add ")' in questo esempio? È la scatola autocomplete o qualcos'altro? – Yuck

4

attuale versione di jQuery UI permette dare il completamento automatico widget di un oggetto di posizione con le opzioni, con le stesse proprietà del widget di posizione di cui sopra. quindi puoi usarlo per posizionare l'elenco dei suggerimenti come preferisci.

+0

Sono d'accordo .. meglio darglielo come opzione –

24

Mettere risposta di @ mvonlintel in un altro modo, impostare la posizione del menu suggerimenti nella dichiarazione widget

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

Mi piace così =) – Bryuk

+0

Questo non funziona per me. – Yuck

+0

questo funziona per me :) –

Problemi correlati