2012-10-17 7 views
5

Ho implementato il plugin mCustomScrollbar nei miei interfacce di backoffice. Funziona bene. Ma in una delle mie forme, ho un campo cittadino che ha bisogno del completamento automatico.jQuery completamento automatico rende mCustomScrollbar di scorrimento verso l'alto su selezionare

Il completamento automatico funziona anche bene. Ma quando seleziono uno degli elementi dai dati di completamento automatico, il plug-in mCustomScrollbar mi porta automaticamente in cima al contenuto a scorrimento e devo fare clic una seconda volta affinché l'elemento sia effettivamente selezionato.

Ecco come ho implementato il plugin barra di scorrimento:

$('#mainContent').mCustomScrollbar({ 
     set_height: height, 
     scrollInertia: 500, 
     scrollEasing: "easeInOutQuad", 
     mouseWheel: 20, 
     autoDraggerLength: true, 
     advanced: { 
      updateOnBrowserResize: true, 
      updateOnContentResize: false 
     } 
    }); 

e questo è come ho implementato il completamento automatico:

el.autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: activityAutocomplete, 
      dataType: "json", 
      data: request, 
      success: function (data) { 
       if (data.length == 0) { 
        data.push({ 
         label: "Pas de résultat" 
        }); 
       } 
       response(data); 
      } 
     }); 
    }, 
    //If overflow edge of window, the autocomplete flips to top of input 
    position: { collision: "flip" }, 
    autofocus: true, 
    delay: 150, 
    minLength: 1, 
    select: function (event, ui) { 
     //ui.hide(); 
     //The following code resizes the input by bluring it. 
     setTimeout(function() { el.autoGrowInput(); }, 50); 


    }, 
    appendTo: '#autocomplete-tb-city-' + el.parents('.item').attr('id') 
}); 

Spero che troverete qualcosa di sbagliato qui, sono stato lavorando su questo per come 3 giorni!

EDIT: Questa è la marcatura di completamento automatico generato.

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem"> 
    <li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">Angers</a</li> 
    <li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">Amiens</a</li> 
</ul> 

Devo aggiungere qualcosa potrebbe essere importante: mi porta in cima anche a DESTRA CLIC !!

Grazie.

risposta

2

stavo affrontando lo stesso problema con completamento automatico. Selezionando qualsiasi oggetto di completamento automatico scorre la finestra verso l'alto.

Ho visto il tuo commento here, e penso che hai la soluzione.

Utilizzando suggerimento lei ha citato nel link qui sopra, ho attraversato mcustomscrollbar.js codice e appena commentate le linee 533 e 534 e yeppy ha funzionato per me.

Grazie per il suggerimento. Saluti !!

+0

Sì, ha funzionato anche per me :). – aztuk

+0

Bello, bello :) – varunvlalan

0

potrebbe essere un problema relativo all'ancora? qual è l'href sugli articoli generati per il completamento automatico? sarebbe utile se è possibile fornire il markup html del completamento automatico generato.

magari provare l'aggiunta di questa (non testato) ...

$([auto-complete suggestions]).live("click", function(e){ 
e.preventDefault(); 
}); 
+0

ho provato che, la selezione di articolo non è più funziona e mi porta ancora verso l'alto. – aztuk

+0

potresti caricare il problema da qualche parte dove possiamo controllare? – zeddotes

+0

Sto lavorando su una rete locale, come posso caricarlo? Ho provato a farlo funzionare su jsFiddle ma il plugin non funziona nemmeno su questo a causa del tipo Mime ... – aztuk

9

Una nuova versione di custom scrollbars ha un'opzione avanzata autoScrollOnFocus.

Esempio:

 $($element).find('> .scrollbars').mCustomScrollbar({ 
      horizontalScroll: false, 
      autoDraggerLength: true, 
      autoHideScrollbar: true, 
      advanced:{ 
       autoScrollOnFocus: false, 
       updateOnContentResize: true, 
       updateOnBrowserResize: true 
      } 
     }); 
+1

l'impostazione 'autoScrollOnFocus: false' ha risolto i miei problemi con questo errore di attivazione del campo plugin. –

Problemi correlati