2012-10-17 24 views
5

yapar. Backoffice arabirimlerimde mCustomScrollbar eklentisini uygularım. İyi çalışıyor. Ama formlarımdan birinde, otomatik tamamlamaya ihtiyacı olan bir şehir alanım var.jquery autocomplete, mCustomScrollbar'ı seçtiğinde seçtiğimiz üstte

Otomatik tamamlama da iyi çalışıyor. Ancak, otomatik tamamlama kaynak verilerindeki öğeden birini seçtiğimde, mCustomScrollbar eklentisi beni otomatik olarak kaydırılan içeriğin en üstüne getirir ve öğenin gerçekten seçilebilmesi için ikinci kez tıklamam gerekir.

Bu

Ben kaydırma çubuğu eklentisi uygulanan nasıl:

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

Ve bu otomatik tamamlama uygulamaya nasıl:

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

ben burada yanlış bir şey bulmak umuyoruz i been bunun için 3 gün gibi çalışıyor!

DÜZENLEME: Bu, oluşturulan otomatik tamamlama işaretlemesidir.

<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> 

Önemli olabilecek bir şey eklemeliyim: RIGHT TIKLAYIN!

Teşekkür ederiz.

cevap

2

Ben otomatik tamamlama ile aynı sorunu karşı karşıya idi. Otomatik tamamlama öğelerini seçmek pencereyi en üste kaydırır.

Yorumunuzu gördüm here ve sanırım çözümü aldınız.

Yukarıdaki bağlantıda bahsettiğiniz ipuçlarını kullanarak, mcustomscrollbar.js kodundan geçtim ve 533 ve 534 numaralı satırları yorumladım ve benim için işe yaradı.

İpucu için teşekkürler. Şerefe!

+0

Evet, benim için de işe yaradı :). – aztuk

+0

Bu güzel, güzel :) – varunvlalan

0

, çapa ile ilgili bir sorun olabilir? otomatik tamamlama için oluşturulan öğelerdeki href nedir? Oluşturulan otomatik tamamlamanın html biçimlendirmesini sağlayabilirsiniz.

belki bu (test) eklemeyi deneyin ...

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

Ben öğenin seçimi artık çalışmıyor, bunu denedim ve hala top getiriyor. – aztuk

+0

sorunu kontrol edebileceğimiz bir yere yükleyebilir misiniz? – zeddotes

+0

Yerel bir ağda çalışıyorum, nasıl yükleyebilirim? Ben jsFiddle üzerinde çalışmayı denedim ama eklenti bile Mime türü ... – aztuk

9

Özel bir scrollbars'un yeni bir sürümü, autoScrollOnFocus numaralı gelişmiş bir seçeneğe sahiptir.

Örnek:

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

ayarı "autoScrollOnFocus: false" bu eklentilerdeki alan odak hatasıyla ilgili sorunlarımı çözdü. –

İlgili konular