Автозаполнение выбора элемента при нажатии на полосе прокрутки - PullRequest
2 голосов
/ 22 февраля 2010

У меня проблема с jquery.ui.autocomplete 1.8 rc2 в IE7 или IE8 со следующим CSS (внутри jquery.ui.autocomplete.css):

.ui-menu {
      list-style:none;
      padding: 2px;
      margin: 0;display:block;
      height:200px; 
      overflow:scroll;
      }

Я использую демо из проекта под названием: demos\autocomplete\remote-jsonp.html

Он отлично работает с Firefox, но с IE7 или 8, каждый раз, когда я нажимаю на полосу прокрутки, чтобы увидеть конец списка, он выбирает элемент вместо прокрутки вниз.

У вас есть решение, чтобы иметь фиксированную высоту с jquery.ui.autocomplete и полосу прокрутки, работающую с IE?

Ответы [ 5 ]

1 голос
/ 10 марта 2012

вместо этого используйте максимальную высоту.

.ui-autocomplete { 
    max-height: 250px; overflow-y: auto; overflow-x: hidden;
}
* html .ui-autocomplete { 
     height: expression( this.scrollHeight > 250 ? "250px" : "auto" ); /* sets max-height for IE */ 
}  
1 голос
/ 18 июня 2010

Эта ошибка исправлена ​​в выпуске JQuery 1.8.2.

Если вы не можете перейти на 1.8.2, этот хак сработал для меня:

    $("body").click(function () {
        HideAutoCompleteHack();                
    });

    $(document).keyup(function (e) {
        if (e.keyCode == 27) { //esc
            HideAutoCompleteHack();
        }
    });

    function HideAutoCompleteHack() {
        $(".ui-autocomplete").hide();
    }
1 голос
/ 19 марта 2010

У меня была такая же проблема, когда полоса прокрутки использовалась для автозаполнения. А когда я / пользователь использовал кнопки полосы прокрутки - список автозаполнения скрывался автоматически. К вашему сведению: тест был в FF3,5

Так что быстрое решение я прокомментировал bind("blur.autocomplete", function( event ) ... in jquery.ui.autocomplete.js и это решило эту проблему.

0 голосов
/ 09 февраля 2013

просто увеличьте ширину 'ac_results', и он скроет переполнение y

.ac_results ul {
width: 180px;
/* 
increase width to hide overflow
*/
list-style-position: outside;
list-style: none;
padding: 0;
margin: 0;

}

0 голосов
/ 09 декабря 2010

Хорошо, я наконец-то начал работать вчера над IE и Chrome, потратив на это около 20 человеко-часов. Это было сделано -> без отмены связывания события размытия -> без перехода с jquery 1.4.2 на более новую версию (1.4.3 / 1.4.4), что представляло риск с учетом размера моего проекта

Я внес минимальные изменения в jquery.ui.autocomplete.js в моей версии 1.4.2. Эти изменения были скопированы из новейшей версии jquery.ui.autocomplete.js. Я приложил jquery.ui.autocomplete_modified.zip, который работал для меня. Пожалуйста, измените расширение .zip на .js после загрузки файла.

PS: не используйте jquery.ui.autocomplete.js более новой версии непосредственно в вашей старой библиотеке, это не работает. Он показывает некоторые «сильные» HTML-теги вместе с выпадающим содержимым.

Файл прикреплен здесь
http://forum.jquery.com/topic/setting-height-on-autocomplete#14737000001747027

С уважением,
Даршан Шрофф
shroffdarshan@gmail.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...