2012-10-17 6 views
5

Ich habe das mCustomScrollbar-Plugin in meinen Backoffice-Schnittstellen implementiert. Es funktioniert gut. Aber in einem meiner Formulare habe ich ein Stadtfeld, das die automatische Vervollständigung benötigt.jquery Autocomplete macht mCustomScrollbar scrollen nach oben auf Auswahl

Die Autocomplete funktioniert auch gut. Aber wenn ich eines der Elemente aus den Autocomplete-Quelldaten auswähle, bringt mich das mCustomScrollbar-Plugin automatisch an den Anfang des Bildlauf-Inhalts und ich muss ein zweites Mal klicken, damit das Element tatsächlich ausgewählt wird.

Dies ist, wie ich die Scrollbar Plugin implementiert:

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

Und das ist, wie ich die zur automatischen Vervollständigung umgesetzt:

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') 
}); 

Ich hoffe, dass Sie falsch hier etwas finden, ich habe 3 Tage lang daran arbeiten!

EDIT: Dies ist die generierte Autovervollständigung Markup.

Ich muss hinzufügen, etwas könnte wichtig sein: es bringt mich nach oben sogar auf RECHTSKLICK !!

Vielen Dank.

Antwort

2

Ich war mit dem automatischen Vervollständigung mit dem gleichen Problem konfrontiert. Wenn Sie Autocomplete-Elemente auswählen, wird das Fenster nach oben verschoben.

Ich sah Ihren Kommentar here, und ich denke, Sie haben die Lösung.

Mit Hinweis, den Sie im obigen Link erwähnt haben, ging ich durch mcustomscrollbar.js Code und nur Zeilen 533 und 534 auskommentiert und yeppy es funktionierte für mich.

Danke für den Hinweis. Prost !!

+0

Ja, es funktionierte auch für mich :). – aztuk

+0

Das ist nett, cool :) – varunvlalan

0

könnte ein Anker-Problem sein? Was ist die href auf den generierten Elementen für die automatische Vervollständigung? Es wäre hilfreich, wenn Sie das HTML-Markup der generierten Autovervollständigung bereitstellen können.

vielleicht versuchen, diese Zugabe (nicht getestet) ...

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

habe ich versucht, die Auswahl der Artikel nicht mehr funktioniert, und es bringt mich immer noch nach oben. – aztuk

+0

könnten Sie das Problem irgendwo hochladen, wo wir es überprüfen können? – zeddotes

+0

Ich arbeite an einem lokalen Netzwerk, wie kann ich es hochladen? Ich habe versucht, es auf jsFiddle arbeiten zu lassen, aber das Plugin funktioniert wegen des Mime-Typs nicht einmal ... – aztuk

9

Eine neue Version von benutzerdefinierten scrollbars haben eine erweiterte Option autoScrollOnFocus.

Beispiel:

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

Einstellung 'autoScrollOnFocus: false' löste meine Probleme mit diesem Plugins Field Focus Error. –

Verwandte Themen