Z-индекс в диалоге jQuery.Список автозаполнения не отображается должным образом - PullRequest
2 голосов
/ 17 апреля 2011

У меня проблема с отображением поля автозаполнения в диалоге jQuery.Список автоматического предложения отображается под диалогом, несмотря ни на что.Я попытался установить свойство z-index для autosuggest на> 1004. Но не повезло.

Ниже приведен скриншот.

Enter image description here

Это CSSкласс, который я использовал для стилизации списка автозаполнения:

ul.as-list {
    position: absolute;
    list-style-type: none;
    margin: 2px 0 0 0;
    padding: 0;
    font-size: 14px;
    color: #000;
    font-family: "Lucida Grande", arial, sans-serif;
    background-color: #fff;
    background-color: rgba(255,255,255,0.95);
    box-shadow: 0 2px 12px #222;
    -webkit-box-shadow: 0 2px 12px #222;
    -moz-box-shadow: 0 2px 12px #222;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    z-index:6000;
}

li.as-result-item, li.as-message {
    margin: 0 0 0 0;
    padding: 5px 12px;
    background-color: transparent;
    border: 1px solid #fff;
    border-bottom: 1px solid #ddd;
    cursor: pointer;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    z-index:6000;
}

Я загрузил полный код на этой странице jsfiddle .Вы можете видеть проблему там ясно.Как я могу это исправить?

Ответы [ 4 ]

6 голосов
/ 17 апреля 2011

Основная причина в том, что два самых внешних элемента имеют overflow: hidden.

Самый простой способ исправить это:

.ui-dialog, .ui-dialog-content {
    overflow: visible !important
}

Если вы недовольны использованием !important (это не очень хорошая практика), вы можете найти место, где на самом деле применяется overflow: hidden, и исправить его там.

Версия для быстрого исправления: http://jsfiddle.net/mNQVr/ ( протестировано в Chrome, Firefox, IE )

1 голос
/ 17 апреля 2011

Это может сделать это:

ul.as-list {
    position: fixed;
    /*...*/
}
1 голос
/ 17 апреля 2011

Это должно работать, как я проверял, что в ссылке jsfiddle вы указали:

div.as-results{position:relative;z-index:1;}
div.as-results ul.as-list {
    position: fixed;
    list-style-type: none;
    margin: 2px 0 0 0;
    padding: 0;
    font-size: 14px;
    color: #000;
    font-family: "Lucida Grande", arial, sans-serif;
    background-color: #fff;
    background-color: rgba(255,255,255,0.95);
    box-shadow: 0 2px 12px #222;
    -webkit-box-shadow: 0 2px 12px #222;
    -moz-box-shadow: 0 2px 12px #222;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    z-index:6000;
}
1 голос
/ 17 апреля 2011

Вот что вы можете сделать:

$("#txtTagAdd").autoSuggest(data.items, {
                        asHtmlID:"tagg",
                        selectedItemProp: "name",
                        searchObjProps: "name",
                        selectionLimit:4,
                        limitText: "Only 4 tags unique tags allowed for each suggestion",
             resultsComplete: function(){
                 var h = $('ul.as-list').innerHeight() + 20;
                 $('div.as-results').css({"height": h + "px"});
             }
});
...