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