Frage

Ich bin mit dem automatischen Vervollständigung von jQuery UI auf meiner Website, und es funktioniert gut, aber ich bin das System neu zu gestalten, so dass ich diese eine Änderung vornehmen müssen. Zur Zeit öffnet sich die Autovervollständigung auf der Unterseite des Eingangs. Allerdings kann ich es nicht zu einer benutzerdefinierten Position zwingen, weder mit jQuery oder CSS.

Ich habe versucht, diese:

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

ich auch das Hinzufügen versucht! Wichtig erscheint es zweckmäßig, Regeln, aber keine Auswirkungen.

Ich habe auch hinzufügen CSS .ui-Autovervollständigung versucht, ohne Erfolg.

Es scheint, dass, wenn die Schachtel öffnet, ist es, all diese Änderungen überschrieben. Jede Idee dazu? Ich bin wirklich in der Notwendigkeit einer Lösung.

Danke, Martti Laine

War es hilfreich?

Lösung

Sie können eine optionale Funktion für offene schaffen (), dies zu tun:

Beispiel:

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

... wird die Position 200px links von der Position, es wäre normal gewesen

Andere Tipps

Meine die automatische Vervollständigung öffnet am Ende des DOM. Nicht in der Nähe überhaupt mit dem Triggereingang ... Ich denke an dem Index der Suche Eingang auszulösen, und dann die entsprechenden Index der Autovervollständigung zu finden, aber ich weiß nicht, warum- sein für mich nicht robust genug scheint.

Wie NeoSwf, fand ich, dass meine die automatische Vervollständigung in der Nähe der Unterseite des DOM eingefügt wurde. Je nach $(this).next() zu finden es instabil ist. Statt this, empfehle ich etwas präziser wie 'ul.ui-autocomplete'. Hier ist das Coffeescript für meine Version:

jQuery ->
  $('#search').autocomplete
    open: (event, ui) ->
      $('ul.ui-autocomplete').css('left', (index, value) ->
        return 200 + parseInt(value))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top