Z-index в диалоговом окне jquery. Список автозапуска не отображается должным образом

У меня возникла проблема с отображением окна autosuggest внутри диалогового окна JQuery. В диалоговом окне отображается список подсказок, независимо от того, что. Я попытался настроить свойство z-index autosuggest нa > 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. Вы можете четко видеть проблему. Я вел борьбу с этим почти 3 часа без везения. может кто-то помочь мне.

Ответ 1

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

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

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

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

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

Ответ 2

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

$("#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"});
             }
});

Ответ 3

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

ul.as-list {
    position: fixed;
    /*...*/
}

Ответ 4

Он должен работать, когда я тестировал, что в 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;
}